@@ -2,27 +2,26 @@ package api
22
33import  (
44	"errors" 
5- 	"fmt" 
65	"net/http" 
76
8- 	"github.com/fabiante/persurl/api/res" 
97	"github.com/fabiante/persurl/app" 
108	"github.com/gin-gonic/gin" 
119)
1210
1311type  Server  struct  {
14- 	service  app.ServiceInterface 
12+ 	resolver  app.ResolveServiceInterface 
13+ 	admin     app.AdminServiceInterface 
1514}
1615
17- func  NewServer (service  app.ServiceInterface ) * Server  {
18- 	return  & Server {service :  service }
16+ func  NewServer (resolver  app.ResolveServiceInterface ,  admin  app. AdminServiceInterface ) * Server  {
17+ 	return  & Server {resolver :  resolver ,  admin :  admin }
1918}
2019
2120func  (s  * Server ) Resolve (ctx  * gin.Context ) {
2221	domain  :=  ctx .Param ("domain" )
2322	name  :=  ctx .Param ("name" )
2423
25- 	target , err  :=  s .service .Resolve (domain , name )
24+ 	target , err  :=  s .resolver .Resolve (domain , name )
2625	switch  true  {
2726	case  err  ==  nil :
2827		ctx .Redirect (http .StatusFound , target )
@@ -34,40 +33,3 @@ func (s *Server) Resolve(ctx *gin.Context) {
3433		respondWithError (ctx , http .StatusInternalServerError , err )
3534	}
3635}
37- 
38- func  (s  * Server ) SavePURL (ctx  * gin.Context ) {
39- 	domain  :=  ctx .Param ("domain" )
40- 	name  :=  ctx .Param ("name" )
41- 
42- 	var  req  res.SavePURL 
43- 	if  err  :=  ctx .BindJSON (& req ); err  !=  nil  {
44- 		ctx .Abort ()
45- 		return 
46- 	}
47- 
48- 	err  :=  s .service .SavePURL (domain , name , req .Target )
49- 	switch  true  {
50- 	case  err  ==  nil :
51- 		break 
52- 	case  errors .Is (err , app .ErrBadRequest ):
53- 		respondWithError (ctx , http .StatusBadRequest , err )
54- 	default :
55- 		respondWithError (ctx , http .StatusInternalServerError , err )
56- 	}
57- 
58- 	ctx .JSON (http .StatusOK , res .NewSavePURLResponse (fmt .Sprintf ("/r/%s/%s" , domain , name )))
59- }
60- 
61- func  (s  * Server ) CreateDomain (ctx  * gin.Context ) {
62- 	domain  :=  ctx .Param ("domain" )
63- 
64- 	err  :=  s .service .CreateDomain (domain )
65- 	switch  true  {
66- 	case  err  ==  nil :
67- 		ctx .Status (http .StatusNoContent )
68- 	case  errors .Is (err , app .ErrBadRequest ):
69- 		respondWithError (ctx , http .StatusBadRequest , err )
70- 	default :
71- 		respondWithError (ctx , http .StatusInternalServerError , err )
72- 	}
73- }
0 commit comments