GildedRose-Refactoring-Kata/go/api/middlewares/middlewares.go
2023-07-11 20:36:37 +01:00

32 lines
593 B
Go

package middlewares
import "go.uber.org/fx"
var Module = fx.Options(
fx.Provide(NewCorsMiddleware),
fx.Provide(NewMiddlewares),
fx.Provide(NewContentTypeFilterMiddleware),
)
type IMiddleware interface {
Setup()
}
type Middlewares []IMiddleware
func NewMiddlewares(
corsMiddleware CorsMiddleware,
contentTypeFilterMiddleware ContentTypeFilterMiddleware,
) Middlewares {
return Middlewares{
corsMiddleware,
contentTypeFilterMiddleware,
}
}
func (m Middlewares) Setup() {
for _, middleware := range m {
middleware.Setup()
}
}