2024-05-29 13:02:06 +00:00
|
|
|
|
package privilege_external
|
|
|
|
|
|
2024-05-29 14:31:33 +00:00
|
|
|
|
import (
|
2024-06-04 10:15:09 +00:00
|
|
|
|
"errors"
|
2024-05-29 14:31:33 +00:00
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
|
|
|
"go.uber.org/zap"
|
2024-06-04 10:15:09 +00:00
|
|
|
|
our_errors "hub_admin_backend_service/internal/errors"
|
2024-05-29 14:31:33 +00:00
|
|
|
|
"hub_admin_backend_service/internal/repository/privilege"
|
2024-05-29 15:55:17 +00:00
|
|
|
|
"hub_admin_backend_service/internal/tools"
|
2024-05-29 14:31:33 +00:00
|
|
|
|
)
|
|
|
|
|
|
2024-05-29 13:02:06 +00:00
|
|
|
|
type Deps struct {
|
2024-05-29 14:31:33 +00:00
|
|
|
|
Repo *privilege.Privilege
|
|
|
|
|
Logger *zap.Logger
|
2024-05-29 13:02:06 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type PrivilegeExternal struct {
|
2024-05-29 14:31:33 +00:00
|
|
|
|
repo *privilege.Privilege
|
|
|
|
|
logger *zap.Logger
|
2024-05-29 13:02:06 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func NewPrivilegeExternal(deps Deps) *PrivilegeExternal {
|
2024-05-29 14:31:33 +00:00
|
|
|
|
return &PrivilegeExternal{
|
|
|
|
|
repo: deps.Repo,
|
|
|
|
|
logger: deps.Logger,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-05-29 15:55:17 +00:00
|
|
|
|
// хаб нода getAllPrivilegesMap
|
2024-05-29 14:31:33 +00:00
|
|
|
|
func (p *PrivilegeExternal) GetAllService(c *fiber.Ctx) error {
|
2024-05-29 15:55:17 +00:00
|
|
|
|
privileges, err := p.repo.GetAllPrivileges(c.Context())
|
|
|
|
|
if err != nil {
|
2024-06-04 10:15:09 +00:00
|
|
|
|
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()})
|
|
|
|
|
}
|
2024-05-29 15:55:17 +00:00
|
|
|
|
}
|
|
|
|
|
return c.Status(fiber.StatusOK).JSON(tools.ConvertPrivilegesToMap(privileges))
|
2024-05-29 13:02:06 +00:00
|
|
|
|
}
|