diff --git a/actions/access_keys/access_keys_test.go b/actions/access_keys/access_keys_test.go index 4f036852..3569d455 100644 --- a/actions/access_keys/access_keys_test.go +++ b/actions/access_keys/access_keys_test.go @@ -28,7 +28,7 @@ func (ts *TestSuite) SetupTest() { ts.BaseSetupTest() routes := NewHandler(ts.AppConfig, ts.Services) - routes.RegisterAPIEndpoints(ts.Router.Group("/" + config.APIVersion)) + routes.RegisterOldAPIEndpoints(ts.Router.Group("/" + config.APIVersion)) } // TearDownTest runs after each test diff --git a/actions/access_keys/routes.go b/actions/access_keys/routes.go index 1c659cb8..639e6051 100644 --- a/actions/access_keys/routes.go +++ b/actions/access_keys/routes.go @@ -13,10 +13,10 @@ type Action struct { } // NewHandler creates the specific package routes -func NewHandler(appConfig *config.AppConfig, services *config.AppServices) routes.APIEndpointsFunc { +func NewHandler(appConfig *config.AppConfig, services *config.AppServices) routes.OldAPIEndpointsFunc { action := &Action{actions.Action{AppConfig: appConfig, Services: services}} - apiEndpoints := routes.APIEndpointsFunc(func(router *gin.RouterGroup) { + apiEndpoints := routes.OldAPIEndpointsFunc(func(router *gin.RouterGroup) { accessKeyGroup := router.Group("/access-key") accessKeyGroup.POST("", action.create) accessKeyGroup.GET("", action.get) diff --git a/actions/contacts/contacts_test.go b/actions/contacts/contacts_test.go index 840e54c5..115e4d87 100644 --- a/actions/contacts/contacts_test.go +++ b/actions/contacts/contacts_test.go @@ -29,7 +29,7 @@ func (ts *TestSuite) SetupTest() { // Load the router & register routes routes := NewHandler(ts.AppConfig, ts.Services) - routes.RegisterAPIEndpoints(ts.Router.Group("/" + config.APIVersion)) + routes.RegisterOldAPIEndpoints(ts.Router.Group("/" + config.APIVersion)) } // TearDownTest runs after each test diff --git a/actions/contacts/routes.go b/actions/contacts/routes.go index 617b9aad..1a4dc846 100644 --- a/actions/contacts/routes.go +++ b/actions/contacts/routes.go @@ -13,10 +13,10 @@ type Action struct { } // NewHandler creates the specific package routes -func NewHandler(appConfig *config.AppConfig, services *config.AppServices) routes.APIEndpointsFunc { +func NewHandler(appConfig *config.AppConfig, services *config.AppServices) routes.OldAPIEndpointsFunc { action := &Action{actions.Action{AppConfig: appConfig, Services: services}} - apiEndpoints := routes.APIEndpointsFunc(func(router *gin.RouterGroup) { + apiEndpoints := routes.OldAPIEndpointsFunc(func(router *gin.RouterGroup) { group := router.Group("/contact") group.PUT("/:paymail", action.upsert) diff --git a/actions/destinations/destination_test.go b/actions/destinations/destination_test.go index f7e891c7..ff40a9bb 100644 --- a/actions/destinations/destination_test.go +++ b/actions/destinations/destination_test.go @@ -30,7 +30,7 @@ func (ts *TestSuite) SetupTest() { // Load the router & register routes basicRoutes, apiRoutes := NewHandler(ts.AppConfig, ts.Services) basicRoutes.RegisterBasicEndpoints(ts.Router.Group("/" + config.APIVersion)) - apiRoutes.RegisterAPIEndpoints(ts.Router.Group("/" + config.APIVersion)) + apiRoutes.RegisterOldAPIEndpoints(ts.Router.Group("/" + config.APIVersion)) } // TearDownTest runs after each test diff --git a/actions/destinations/routes.go b/actions/destinations/routes.go index a736eb21..ac32ba61 100644 --- a/actions/destinations/routes.go +++ b/actions/destinations/routes.go @@ -13,7 +13,7 @@ type Action struct { } // NewHandler creates the specific package routes -func NewHandler(appConfig *config.AppConfig, services *config.AppServices) (routes.BasicEndpointsFunc, routes.APIEndpointsFunc) { +func NewHandler(appConfig *config.AppConfig, services *config.AppServices) (routes.BasicEndpointsFunc, routes.OldAPIEndpointsFunc) { action := &Action{actions.Action{AppConfig: appConfig, Services: services}} basicEndpoints := routes.BasicEndpointsFunc(func(router *gin.RouterGroup) { @@ -24,7 +24,7 @@ func NewHandler(appConfig *config.AppConfig, services *config.AppServices) (rout basicDestinationGroup.POST("/search", action.search) }) - apiEndpoints := routes.APIEndpointsFunc(func(router *gin.RouterGroup) { + apiEndpoints := routes.OldAPIEndpointsFunc(func(router *gin.RouterGroup) { apiDestinationGroup := router.Group("/destination") apiDestinationGroup.POST("", action.create) apiDestinationGroup.PATCH("", action.update) diff --git a/actions/sharedconfig/routes.go b/actions/sharedconfig/routes.go index d93134ae..a6483e38 100644 --- a/actions/sharedconfig/routes.go +++ b/actions/sharedconfig/routes.go @@ -13,10 +13,10 @@ type Action struct { } // NewHandler creates the specific package routes -func NewHandler(appConfig *config.AppConfig, services *config.AppServices) routes.APIEndpointsFunc { +func NewHandler(appConfig *config.AppConfig, services *config.AppServices) routes.OldAPIEndpointsFunc { action := &Action{actions.Action{AppConfig: appConfig, Services: services}} - sharedConfigEndpoints := routes.APIEndpointsFunc(func(router *gin.RouterGroup) { + sharedConfigEndpoints := routes.OldAPIEndpointsFunc(func(router *gin.RouterGroup) { group := router.Group("/shared-config") group.GET("", action.get) }) diff --git a/actions/transactions/routes.go b/actions/transactions/routes.go index acd9cfdf..1d48c69c 100644 --- a/actions/transactions/routes.go +++ b/actions/transactions/routes.go @@ -13,7 +13,7 @@ type Action struct { } // NewHandler creates the specific package routes -func NewHandler(appConfig *config.AppConfig, services *config.AppServices) (routes.BasicEndpointsFunc, routes.APIEndpointsFunc, routes.CallbackEndpointsFunc) { +func NewHandler(appConfig *config.AppConfig, services *config.AppServices) (routes.BasicEndpointsFunc, routes.OldAPIEndpointsFunc, routes.CallbackEndpointsFunc) { action := &Action{actions.Action{AppConfig: appConfig, Services: services}} basicEndpoints := routes.BasicEndpointsFunc(func(router *gin.RouterGroup) { @@ -25,7 +25,7 @@ func NewHandler(appConfig *config.AppConfig, services *config.AppServices) (rout basicTransactionGroup.POST("/search", action.search) }) - apiEndpoints := routes.APIEndpointsFunc(func(router *gin.RouterGroup) { + apiEndpoints := routes.OldAPIEndpointsFunc(func(router *gin.RouterGroup) { apiTransactionGroup := router.Group("/transaction") apiTransactionGroup.POST("", action.newTransaction) apiTransactionGroup.POST("/record", action.record) diff --git a/actions/transactions/transaction_test.go b/actions/transactions/transaction_test.go index fb9f36db..4d63d6df 100644 --- a/actions/transactions/transaction_test.go +++ b/actions/transactions/transaction_test.go @@ -30,7 +30,7 @@ func (ts *TestSuite) SetupTest() { // Load the router & register routes basicRoutes, apiRoutes, callbackRoutes := NewHandler(ts.AppConfig, ts.Services) basicRoutes.RegisterBasicEndpoints(ts.Router.Group("/" + config.APIVersion)) - apiRoutes.RegisterAPIEndpoints(ts.Router.Group("/" + config.APIVersion)) + apiRoutes.RegisterOldAPIEndpoints(ts.Router.Group("/" + config.APIVersion)) callbackRoutes.RegisterCallbackEndpoints(ts.Router.Group("")) } diff --git a/actions/utxos/routes.go b/actions/utxos/routes.go index 9c9fef79..93297dea 100644 --- a/actions/utxos/routes.go +++ b/actions/utxos/routes.go @@ -13,10 +13,10 @@ type Action struct { } // NewHandler creates the specific package routes -func NewHandler(appConfig *config.AppConfig, services *config.AppServices) routes.APIEndpointsFunc { +func NewHandler(appConfig *config.AppConfig, services *config.AppServices) routes.OldAPIEndpointsFunc { action := &Action{actions.Action{AppConfig: appConfig, Services: services}} - apiEndpoints := routes.APIEndpointsFunc(func(router *gin.RouterGroup) { + apiEndpoints := routes.OldAPIEndpointsFunc(func(router *gin.RouterGroup) { utxoGroup := router.Group("/utxo") utxoGroup.GET("", action.get) utxoGroup.POST("/count", action.count) diff --git a/actions/utxos/utxo_test.go b/actions/utxos/utxo_test.go index c04029a4..77aa26e2 100644 --- a/actions/utxos/utxo_test.go +++ b/actions/utxos/utxo_test.go @@ -29,7 +29,7 @@ func (ts *TestSuite) SetupTest() { // Load the router & register routes apiRoutes := NewHandler(ts.AppConfig, ts.Services) - apiRoutes.RegisterAPIEndpoints(ts.Router.Group("/" + config.APIVersion)) + apiRoutes.RegisterOldAPIEndpoints(ts.Router.Group("/" + config.APIVersion)) } // TearDownTest runs after each test diff --git a/actions/xpubs/routes.go b/actions/xpubs/routes.go index a5231a39..4a625c4f 100644 --- a/actions/xpubs/routes.go +++ b/actions/xpubs/routes.go @@ -13,10 +13,10 @@ type Action struct { } // NewHandler creates the specific package routes -func NewHandler(appConfig *config.AppConfig, services *config.AppServices) routes.APIEndpointsFunc { +func NewHandler(appConfig *config.AppConfig, services *config.AppServices) routes.OldAPIEndpointsFunc { action := &Action{actions.Action{AppConfig: appConfig, Services: services}} - apiEndpoints := routes.APIEndpointsFunc(func(router *gin.RouterGroup) { + apiEndpoints := routes.OldAPIEndpointsFunc(func(router *gin.RouterGroup) { xpubGroup := router.Group("/xpub") xpubGroup.GET("", action.get) xpubGroup.PATCH("", action.update) diff --git a/actions/xpubs/xpubs_test.go b/actions/xpubs/xpubs_test.go index 3c346723..2ce6d17d 100644 --- a/actions/xpubs/xpubs_test.go +++ b/actions/xpubs/xpubs_test.go @@ -29,7 +29,7 @@ func (ts *TestSuite) SetupTest() { // Load the router & register routes routes := NewHandler(ts.AppConfig, ts.Services) - routes.RegisterAPIEndpoints(ts.Router.Group("/" + config.APIVersion)) + routes.RegisterOldAPIEndpoints(ts.Router.Group("/" + config.APIVersion)) } // TearDownTest runs after each test diff --git a/server/routes/routes_config.go b/server/routes/routes_config.go index f4a5d3ca..0006ec58 100644 --- a/server/routes/routes_config.go +++ b/server/routes/routes_config.go @@ -13,6 +13,15 @@ type AdminEndpoints interface { RegisterAdminEndpoints(router *gin.RouterGroup) } +// OldAPIEndpointsFunc wrapping type for function to mark it as implementation of OldApiEndpoints. +type OldAPIEndpointsFunc func(router *gin.RouterGroup) + +// OldAPIEndpoints registrar which will register routes in ADMIN routes group. +type OldAPIEndpoints interface { + // RegisterAPIEndpoints register ADMIN endpoints. + RegisterOldAPIEndpoints(router *gin.RouterGroup) +} + // APIEndpointsFunc wrapping type for function to mark it as implementation of ApiEndpoints. type APIEndpointsFunc func(router *gin.RouterGroup) @@ -54,6 +63,11 @@ func (f AdminEndpointsFunc) RegisterAdminEndpoints(router *gin.RouterGroup) { f(router) } +// RegisterOldAPIEndpoints register API endpoints by registrar OldApiEndpointsFunc. +func (f OldAPIEndpointsFunc) RegisterOldAPIEndpoints(router *gin.RouterGroup) { + f(router) +} + // RegisterAPIEndpoints register API endpoints by registrar ApiEndpointsFunc. func (f APIEndpointsFunc) RegisterAPIEndpoints(router *gin.RouterGroup) { f(router) diff --git a/server/server.go b/server/server.go index 83870afe..1bfdf16c 100644 --- a/server/server.go +++ b/server/server.go @@ -164,7 +164,8 @@ func SetupServerRoutes(appConfig *config.AppConfig, services *config.AppServices baseRouter := engine.Group("") authRouter := engine.Group("", auth.BasicMiddleware(services.SpvWalletEngine, appConfig)) basicAuthRouter := authRouter.Group(prefix, auth.SignatureMiddleware(appConfig, false, false)) - apiAuthRouter := authRouter.Group(prefix, auth.SignatureMiddleware(appConfig, true, false)) + oldAPIAuthRouter := authRouter.Group(prefix, auth.SignatureMiddleware(appConfig, true, false)) + apiAuthRouter := authRouter.Group("/api"+prefix, auth.SignatureMiddleware(appConfig, true, false)) adminAuthRouter := authRouter.Group(prefix, auth.SignatureMiddleware(appConfig, true, true), auth.AdminMiddleware()) callbackAuthRouter := baseRouter.Group("", auth.CallbackTokenMiddleware(appConfig)) @@ -172,6 +173,8 @@ func SetupServerRoutes(appConfig *config.AppConfig, services *config.AppServices switch r := r.(type) { case router.AdminEndpoints: r.RegisterAdminEndpoints(adminAuthRouter) + case router.OldAPIEndpoints: + r.RegisterOldAPIEndpoints(oldAPIAuthRouter) case router.APIEndpoints: r.RegisterAPIEndpoints(apiAuthRouter) case router.BasicEndpoints: