package controller import ( "net/http" "github.com/divyam234/teldrive/pkg/httputil" "github.com/gin-gonic/gin" ) // GetSession godoc // // @Summary Get user session information // @Description Get detailed information about the user's session. // @Tags auth // @Produce json // @Success 200 {object} schemas.Session // @Router /auth/session [get] func (ac *Controller) GetSession(c *gin.Context) { session := ac.AuthService.GetSession(c) c.JSON(http.StatusOK, session) } // LogIn godoc // // @Summary Log in to the application // @Description Log in to the application with Telegram session details // @Tags auth // @Accept json // @Produce json // @Param session body schemas.TgSession true "Telegram Session Details" // @Success 200 {object} schemas.Message // @Failure 400 {object} httputil.HTTPError // @Failure 401 {object} httputil.HTTPError // @Failure 500 {object} httputil.HTTPError // @Router /auth/login [post] func (ac *Controller) LogIn(c *gin.Context) { res, err := ac.AuthService.LogIn(c) if err != nil { httputil.NewError(c, err.Code, err.Error) return } c.JSON(http.StatusOK, res) } // Logout godoc // // @Summary Log out from the application // @Description Log out from the application and invalidate the session // @Tags auth // @Produce json // @Success 200 {object} schemas.Message // @Failure 500 {object} httputil.HTTPError // @Router /auth/logout [post] func (ac *Controller) Logout(c *gin.Context) { res, err := ac.AuthService.Logout(c) if err != nil { httputil.NewError(c, err.Code, err.Error) return } c.JSON(http.StatusOK, res) } func (ac *Controller) HandleMultipleLogin(c *gin.Context) { ac.AuthService.HandleMultipleLogin(c) }