29 lines
777 B
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})
|
|
}
|