package acl import ( "database/sql" "mangezmieux-backend/internal/acl/key" "mangezmieux-backend/internal/acl/service" aclSql "mangezmieux-backend/internal/acl/sql" "mangezmieux-backend/internal/ginserver" "mangezmieux-backend/internal/injector" "mangezmieux-backend/internal/postgres" "mangezmieux-backend/internal/validator" "net/http" "github.com/gin-gonic/gin" validatorv10 "github.com/go-playground/validator/v10" ) func SetupDao(inj *injector.Injector) { client := injector.Get[*sql.DB](inj, postgres.DatabaseKey) dao := aclSql.NewDao(client) inj.Set(key.DaoKey, dao) } func Setup(inj *injector.Injector) { securedRoute := injector.Get[*gin.RouterGroup](inj, ginserver.SecuredRouterInjectorKey) validatorCli := injector.Get[*validatorv10.Validate](inj, validator.ValidatorInjectorKey) dao := injector.Get[aclSql.Dao](inj, key.DaoKey) aclService := service.NewService(dao) handler := NewHandler(aclService, validatorCli) inj.Set(key.ServiceKey, aclService) aclRoute := securedRoute.Group("/roles") aclRoute.Handle(http.MethodGet, "/", handler.GetAllRole) securedRoute.Handle(http.MethodGet, "/users/me/roles", handler.GetMyRoles) }