package user import ( "github.com/gin-gonic/gin" "net/http" "nos-comptes/internal/ginserver" "nos-comptes/internal/storage/dao/postgresql" "nos-comptes/internal/utils" ) const ServiceInjectorKey = "USER_SERVICE" func Setup(injector *utils.Injector) { pg := utils.Get[*postgresql.DatabasePostgreSQL](injector, postgresql.DatabaseKey) database := NewDatabase(pg) service := NewService(database) validator := NewValidator(service) handler := NewHandler(validator, database, service) securedRoute := utils.Get[*gin.RouterGroup](injector, ginserver.SecuredRouterInjectorKey) //TODO add secure auth securedRoute.Handle(http.MethodGet, "/:userId", handler.GetUser) securedUserRoute := securedRoute.Group("/:userId") securedUserRoute.Use(validator.HasValidUserId) securedUserRoute.Use(validator.UserdIdMatchOAuthToken) injector.Set(ServiceInjectorKey, service) } func SetupRoute(injector *utils.Injector) { }