package controllers import ( "github.com/crawlab-team/crawlab/core/constants" "github.com/crawlab-team/crawlab/core/errors" "github.com/crawlab-team/crawlab/core/user" "github.com/gin-gonic/gin" ) type PostLoginParams struct { Username string `json:"username" validate:"required"` Password string `json:"password" validate:"required"` } func PostLogin(c *gin.Context, params *PostLoginParams) (response *Response[string], err error) { userSvc, err := user.GetUserService() if err != nil { return GetErrorResponse[string](err) } token, loggedInUser, err := userSvc.Login(params.Username, params.Password) if err != nil { return GetErrorResponse[string](errors.ErrorUserUnauthorized) } c.Set(constants.UserContextKey, loggedInUser) return GetDataResponse(token) } func PostLogout(_ *gin.Context) (response *VoidResponse, err error) { return GetVoidResponse() }