Files
mangezmieux/mangezmieux-backend/internal/acl/setup.go
2024-07-19 17:04:42 +02:00

40 lines
1.1 KiB
Go

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)
}