package server import ( dto "git.ego.freeddns.org/egommerce/api-entities/identity/dto" domain "git.ego.freeddns.org/egommerce/identity-service/domain/repository" "git.ego.freeddns.org/egommerce/identity-service/internal/service" "git.ego.freeddns.org/egommerce/identity-service/internal/ui" "github.com/gofiber/fiber/v2" ) func (s *Server) AccessHandlerFn(c *fiber.Ctx) error { userRepo := domain.NewUserRepository(s.GetDatabase()) roleRepo := domain.NewRoleRepository(s.GetDatabase()) urlRepo := domain.NewURLAccessRepository(s.GetDatabase()) authSrv := service.NewAuthService(userRepo, s.GetCache()) guardSrv := service.NewGuardService(authSrv, userRepo, roleRepo, urlRepo) url, srvName := c.Query("q"), c.Query("srv") header := new(dto.AuthorizationHeaderDTO) c.ReqHeaderParser(header) if err := ui.NewAccessActionUI(guardSrv).Execute(header, url, srvName); err != nil { return s.Error(c, fiber.StatusNotFound, err.Error()) } return c.SendStatus(fiber.StatusNoContent) }