package privilege_external import ( "errors" "github.com/gofiber/fiber/v2" "go.uber.org/zap" our_errors "gitea.pena/PenaSide/tariffs/internal/errors" "gitea.pena/PenaSide/tariffs/internal/repository/privilege" "gitea.pena/PenaSide/tariffs/internal/tools" ) type Deps struct { Repo *privilege.Privilege Logger *zap.Logger } type PrivilegeExternal struct { repo *privilege.Privilege logger *zap.Logger } func NewPrivilegeExternal(deps Deps) *PrivilegeExternal { return &PrivilegeExternal{ repo: deps.Repo, logger: deps.Logger, } } // хаб нода getAllPrivilegesMap func (p *PrivilegeExternal) GetAllService(c *fiber.Ctx) error { privileges, err := p.repo.GetAllPrivileges(c.Context()) if err != nil { switch { case errors.Is(err, our_errors.ErrNotFound): return c.Status(fiber.StatusNotFound).JSON(fiber.Map{"error": "Privileges not found"}) default: return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": err.Error()}) } } return c.Status(fiber.StatusOK).JSON(tools.ConvertPrivilegesToMap(privileges)) }