Files
identity-service/src/internal/server/login_handler.go

29 lines
777 B
Go

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})
}