40 lines
1.1 KiB
Go
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)
|
|
|
|
}
|