flamingo.me/flamingo-commerce/v3@v3.11.0/payment/module.go (about) 1 package payment 2 3 import ( 4 "flamingo.me/dingo" 5 "flamingo.me/flamingo-commerce/v3/payment/interfaces" 6 "flamingo.me/flamingo-commerce/v3/payment/interfaces/controller" 7 "flamingo.me/flamingo/v3/framework/web" 8 ) 9 10 type ( 11 // Module registers our payment module 12 Module struct { 13 EnableOfflinePayment bool `inject:"config:commerce.payment.enableOfflinePaymentGateway,optional"` 14 } 15 ) 16 17 // Configure module 18 func (m *Module) Configure(injector *dingo.Injector) { 19 if m.EnableOfflinePayment { 20 injector.BindMap((*interfaces.WebCartPaymentGateway)(nil), interfaces.OfflineWebCartPaymentGatewayCode).To(interfaces.OfflineWebCartPaymentGateway{}) 21 } 22 23 web.BindRoutes(injector, new(routes)) 24 } 25 26 type routes struct { 27 paymentAPIController *controller.PaymentAPIController 28 } 29 30 func (r *routes) Inject(apiController *controller.PaymentAPIController) { 31 r.paymentAPIController = apiController 32 } 33 34 func (r *routes) Routes(registry *web.RouterRegistry) { 35 registry.HandleGet("payment.status", r.paymentAPIController.Status) 36 registry.Route("/api/payment/status", "payment.status") 37 registry.Route("/api/v1/payment/status", "payment.status") 38 39 }