package authhandler import ( "github.com/gin-gonic/gin" authlogic "spark-server/internal/module/auth/logic" "spark-server/internal/transport/http/respond" ) // Handler is the auth HTTP controller. It must not contain login business rules. type Handler struct { login *authlogic.LoginService } func New(login *authlogic.LoginService) *Handler { return &Handler{login: login} } func (h *Handler) Login(c *gin.Context) { var in authlogic.LoginInput if err := respond.BindJSON(c, &in); err != nil { respond.JSONError(c, err) return } tok, err := h.login.Login(c.Request.Context(), &in) if err != nil { respond.JSONError(c, err) return } respond.JSON(c, tok) } func (h *Handler) Refresh(c *gin.Context) { var in authlogic.RefreshInput if err := respond.BindJSON(c, &in); err != nil { respond.JSONError(c, err) return } tok, err := h.login.Refresh(c.Request.Context(), in) if err != nil { respond.JSONError(c, err) return } respond.JSON(c, tok) } func (h *Handler) Logout(c *gin.Context) { if err := h.login.Logout(c.Request.Context()); err != nil { respond.JSONError(c, err) return } respond.JSON(c, gin.H{}) }