Skip to content

Commit

Permalink
Request logging feature
Browse files Browse the repository at this point in the history
  • Loading branch information
mrz1836 committed Apr 14, 2022
1 parent 579ff94 commit ebe30d0
Show file tree
Hide file tree
Showing 14 changed files with 45 additions and 30 deletions.
11 changes: 6 additions & 5 deletions actions/access_keys/routes.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,10 @@ func RegisterRoutes(router *apirouter.Router, appConfig *config.AppConfig, servi
action := &Action{actions.Action{AppConfig: a.AppConfig, Services: a.Services}}

// V1 Requests
router.HTTPRouter.GET("/"+config.CurrentMajorVersion+"/access-key", router.Request(require.Wrap(action.get)))
router.HTTPRouter.GET("/"+config.CurrentMajorVersion+"/access-key/search", router.Request(require.Wrap(action.search)))
router.HTTPRouter.POST("/"+config.CurrentMajorVersion+"/access-key/search", router.Request(require.Wrap(action.search)))
router.HTTPRouter.POST("/"+config.CurrentMajorVersion+"/access-key", router.Request(require.Wrap(action.create)))
router.HTTPRouter.DELETE("/"+config.CurrentMajorVersion+"/access-key", router.Request(require.Wrap(action.revoke)))
router.HTTPRouter.GET("/"+config.CurrentMajorVersion+"/access-key", action.Request(router, require.Wrap(action.get)))
router.HTTPRouter.GET("/"+config.CurrentMajorVersion+"/access-key/search", action.Request(router, require.Wrap(action.search)))
router.HTTPRouter.POST("/"+config.CurrentMajorVersion+"/access-key/search", action.Request(router, require.Wrap(action.search)))
router.HTTPRouter.POST("/"+config.CurrentMajorVersion+"/access-key", action.Request(router, require.Wrap(action.create)))
router.HTTPRouter.DELETE("/"+config.CurrentMajorVersion+"/access-key", action.Request(router, require.Wrap(action.revoke)))

}
2 changes: 1 addition & 1 deletion actions/base/routes.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ func RegisterRoutes(router *apirouter.Router, appConfig *config.AppConfig, servi
action := &Action{actions.Action{AppConfig: appConfig, Services: services}}

// Set the main index page (navigating to slash)
router.HTTPRouter.GET("/", router.Request(index))
router.HTTPRouter.GET("/", action.Request(router, router.Request(index)))
router.HTTPRouter.OPTIONS("/", router.SetCrossOriginHeaders)
router.HTTPRouter.HEAD("/", actions.Head)

Expand Down
14 changes: 7 additions & 7 deletions actions/destinations/routes.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,16 @@ func RegisterRoutes(router *apirouter.Router, appConfig *config.AppConfig, servi
require.Use(a.RequireAuthentication)

// Use the authentication middleware wrapper - this will only check for a valid xPub
a, requireBasic := actions.NewStack(appConfig, services)
requireBasic.Use(a.RequireBasicAuthentication)
aBasic, requireBasic := actions.NewStack(appConfig, services)
requireBasic.Use(aBasic.RequireBasicAuthentication)

// Load the actions and set the services
action := &Action{actions.Action{AppConfig: a.AppConfig, Services: a.Services}}

// V1 Requests
router.HTTPRouter.GET("/"+config.CurrentMajorVersion+"/destination", router.Request(requireBasic.Wrap(action.get)))
router.HTTPRouter.GET("/"+config.CurrentMajorVersion+"/destination/search", router.Request(requireBasic.Wrap(action.search)))
router.HTTPRouter.POST("/"+config.CurrentMajorVersion+"/destination/search", router.Request(requireBasic.Wrap(action.search)))
router.HTTPRouter.POST("/"+config.CurrentMajorVersion+"/destination", router.Request(require.Wrap(action.create)))
router.HTTPRouter.PATCH("/"+config.CurrentMajorVersion+"/destination", router.Request(require.Wrap(action.update)))
router.HTTPRouter.GET("/"+config.CurrentMajorVersion+"/destination", action.Request(router, requireBasic.Wrap(action.get)))
router.HTTPRouter.GET("/"+config.CurrentMajorVersion+"/destination/search", action.Request(router, requireBasic.Wrap(action.search)))
router.HTTPRouter.POST("/"+config.CurrentMajorVersion+"/destination/search", action.Request(router, requireBasic.Wrap(action.search)))
router.HTTPRouter.POST("/"+config.CurrentMajorVersion+"/destination", action.Request(router, require.Wrap(action.create)))
router.HTTPRouter.PATCH("/"+config.CurrentMajorVersion+"/destination", action.Request(router, require.Wrap(action.update)))
}
9 changes: 9 additions & 0 deletions actions/middleware.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,15 @@ func (a *Action) RequireAdminAuthentication(fn httprouter.Handle) httprouter.Han
}
}

// Request will process the request in the router
func (a *Action) Request(router *apirouter.Router, h httprouter.Handle) httprouter.Handle {
if a.AppConfig.RequestLogging {
return router.Request(h)
} else {
return router.RequestNoLogging(h)
}
}

// CheckAuthentication will check the authentication
func CheckAuthentication(appConfig *config.AppConfig, bux bux.ClientInterface, req *http.Request,
adminRequired bool, requireSigning bool) (*http.Request, dictionary.ErrorMessage) {
Expand Down
4 changes: 2 additions & 2 deletions actions/paymail/routes.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ func RegisterRoutes(router *apirouter.Router, appConfig *config.AppConfig, servi
action := &Action{actions.Action{AppConfig: a.AppConfig, Services: a.Services}}

// V1 Requests
router.HTTPRouter.POST("/"+config.CurrentMajorVersion+"/paymail", router.Request(requireAdmin.Wrap(action.create)))
router.HTTPRouter.DELETE("/"+config.CurrentMajorVersion+"/paymail", router.Request(requireAdmin.Wrap(action.delete)))
router.HTTPRouter.POST("/"+config.CurrentMajorVersion+"/paymail", action.Request(router, requireAdmin.Wrap(action.create)))
router.HTTPRouter.DELETE("/"+config.CurrentMajorVersion+"/paymail", action.Request(router, requireAdmin.Wrap(action.delete)))

if appConfig.Debug {
logger.Data(2, logger.DEBUG, "registered paymail routes and model")
Expand Down
16 changes: 8 additions & 8 deletions actions/transactions/routes.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,17 @@ func RegisterRoutes(router *apirouter.Router, appConfig *config.AppConfig, servi
require.Use(a.RequireAuthentication)

// Use the authentication middleware wrapper - this will only check for a valid xPub
a, requireBasic := actions.NewStack(appConfig, services)
requireBasic.Use(a.RequireBasicAuthentication)
aBasic, requireBasic := actions.NewStack(appConfig, services)
requireBasic.Use(aBasic.RequireBasicAuthentication)

// Load the actions and set the services
action := &Action{actions.Action{AppConfig: a.AppConfig, Services: a.Services}}

// V1 Requests
router.HTTPRouter.GET("/"+config.CurrentMajorVersion+"/transaction", router.Request(requireBasic.Wrap(action.get)))
router.HTTPRouter.GET("/"+config.CurrentMajorVersion+"/transaction/search", router.Request(requireBasic.Wrap(action.search)))
router.HTTPRouter.PATCH("/"+config.CurrentMajorVersion+"/transaction", router.Request(requireBasic.Wrap(action.update)))
router.HTTPRouter.POST("/"+config.CurrentMajorVersion+"/transaction", router.Request(require.Wrap(action.newTransaction)))
router.HTTPRouter.POST("/"+config.CurrentMajorVersion+"/transaction/record", router.Request(require.Wrap(action.record)))
router.HTTPRouter.POST("/"+config.CurrentMajorVersion+"/transaction/search", router.Request(requireBasic.Wrap(action.search)))
router.HTTPRouter.GET("/"+config.CurrentMajorVersion+"/transaction", action.Request(router, requireBasic.Wrap(action.get)))
router.HTTPRouter.GET("/"+config.CurrentMajorVersion+"/transaction/search", action.Request(router, requireBasic.Wrap(action.search)))
router.HTTPRouter.PATCH("/"+config.CurrentMajorVersion+"/transaction", action.Request(router, requireBasic.Wrap(action.update)))
router.HTTPRouter.POST("/"+config.CurrentMajorVersion+"/transaction", action.Request(router, require.Wrap(action.newTransaction)))
router.HTTPRouter.POST("/"+config.CurrentMajorVersion+"/transaction/record", action.Request(router, require.Wrap(action.record)))
router.HTTPRouter.POST("/"+config.CurrentMajorVersion+"/transaction/search", action.Request(router, requireBasic.Wrap(action.search)))
}
2 changes: 1 addition & 1 deletion actions/utxos/routes.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,5 @@ func RegisterRoutes(router *apirouter.Router, appConfig *config.AppConfig, servi
action := &Action{actions.Action{AppConfig: a.AppConfig, Services: a.Services}}

// V1 Requests
router.HTTPRouter.GET("/"+config.CurrentMajorVersion+"/utxo", router.Request(require.Wrap(action.get)))
router.HTTPRouter.GET("/"+config.CurrentMajorVersion+"/utxo", action.Request(router, require.Wrap(action.get)))
}
11 changes: 5 additions & 6 deletions actions/xpubs/routes.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,14 @@ func RegisterRoutes(router *apirouter.Router, appConfig *config.AppConfig, servi
requireAdmin.Use(a.RequireAdminAuthentication)

// Use the authentication middleware wrapper - this will only check for a valid xPub
var requireBasic *apirouter.InternalStack
a, requireBasic = actions.NewStack(appConfig, services)
requireBasic.Use(a.RequireBasicAuthentication)
aBasic, requireBasic := actions.NewStack(appConfig, services)
requireBasic.Use(aBasic.RequireBasicAuthentication)

// Load the actions and set the services
action := &Action{actions.Action{AppConfig: a.AppConfig, Services: a.Services}}

// V1 Requests
router.HTTPRouter.GET("/"+config.CurrentMajorVersion+"/xpub", router.Request(requireBasic.Wrap(action.get)))
router.HTTPRouter.POST("/"+config.CurrentMajorVersion+"/xpub", router.Request(requireAdmin.Wrap(action.create)))
router.HTTPRouter.PATCH("/"+config.CurrentMajorVersion+"/xpub", router.Request(requireAdmin.Wrap(action.update)))
router.HTTPRouter.GET("/"+config.CurrentMajorVersion+"/xpub", action.Request(router, requireBasic.Wrap(action.get)))
router.HTTPRouter.POST("/"+config.CurrentMajorVersion+"/xpub", action.Request(router, requireAdmin.Wrap(action.create)))
router.HTTPRouter.PATCH("/"+config.CurrentMajorVersion+"/xpub", action.Request(router, requireAdmin.Wrap(action.update)))
}
1 change: 1 addition & 0 deletions config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ type (
NewRelic *NewRelicConfig `json:"new_relic" mapstructure:"new_relic"`
Paymail *PaymailConfig `json:"paymail" mapstructure:"paymail"`
Redis *RedisConfig `json:"redis" mapstructure:"redis"`
RequestLogging bool `json:"request_logging" mapstructure:"request_logging"`
Server *ServerConfig `json:"server" mapstructure:"server"`
SQL *datastore.SQLConfig `json:"sql" mapstructure:"sql"`
SQLite *datastore.SQLiteConfig `json:"sqlite" mapstructure:"sqlite"`
Expand Down
1 change: 1 addition & 0 deletions config/envs/development.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"disable_itc": true,
"environment": "development",
"gdpr_compliance": false,
"request_logging": true,
"authentication": {
"admin_key": "xpub661MyMwAqRbcFrBJbKwBGCB7d3fr2SaAuXGM95BA62X41m6eW2ehRQGW4xLi9wkEXUGnQZYxVVj4PxXnyrLk7jdqvBAs1Qq9gf6ykMvjR7J",
"require_signing": false,
Expand Down
1 change: 1 addition & 0 deletions config/envs/docker-compose.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"disable_itc": false,
"environment": "development",
"gdpr_compliance": false,
"request_logging": true,
"authentication": {
"admin_key": "1234567",
"require_signing": false,
Expand Down
1 change: 1 addition & 0 deletions config/envs/production.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"disable_itc": false,
"environment": "production",
"gdpr_compliance": false,
"request_logging": true,
"authentication": {
"admin_key": "1234567",
"require_signing": true,
Expand Down
1 change: 1 addition & 0 deletions config/envs/staging.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"disable_itc": false,
"environment": "staging",
"gdpr_compliance": false,
"request_logging": true,
"authentication": {
"admin_key": "1234567",
"require_signing": false,
Expand Down
1 change: 1 addition & 0 deletions config/envs/test.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"disable_itc": false,
"environment": "test",
"gdpr_compliance": false,
"request_logging": true,
"authentication": {
"admin_key": "1234567890123456789012345678901234567890",
"require_signing": false,
Expand Down

0 comments on commit ebe30d0

Please sign in to comment.