package server import ( dto "git.ego.freeddns.org/egommerce/api-entities/identity/dto" "git.ego.freeddns.org/egommerce/identity-service/internal/service" "github.com/gofiber/fiber/v2" ) func (s *Server) LoginHandlerFn(c *fiber.Ctx) error { data := new(dto.AuthLoginRequestDTO) if err := c.BodyParser(data); err != nil { return s.Error(c, fiber.StatusBadRequest, "Error parsing input") } authSrv := service.NewAuthService(s.GetDatabase(), s.GetCache()) token, err := authSrv.Login(data.Username, data.Password) if err != nil { if err == service.ErrUnableToCacheToken { return s.Error(c, fiber.StatusInternalServerError, err.Error()) } return s.Error(c, fiber.StatusBadRequest, err.Error()) } return c.JSON(&dto.AuthLoginResponseDTO{Token: token}) }