package handler import ( "net/http" "aurora/internal/accounts" "aurora/internal/chatgpt" officialtypes "aurora/typings/official" bogdanfinn "aurora/httpclient/bogdanfinn" "github.com/gin-gonic/gin" ) type AuthHandler struct { accountPool *accounts.Pool } func NewAuthHandler(pool *accounts.Pool) *AuthHandler { return &AuthHandler{accountPool: pool} } func (h *AuthHandler) Refresh(c *gin.Context) { var req officialtypes.OpenAIRefreshToken if err := c.BindJSON(&req); err != nil { respondError(c, http.StatusBadRequest, err) return } client := bogdanfinn.NewStdClient() result, status, err := chatgpt.GETTokenForRefreshToken(client, req.RefreshToken, "") if err != nil { c.JSON(http.StatusBadRequest, gin.H{ "message": "Request must be proper JSON", "type": "invalid_request_error", "param": nil, "code": err.Error(), }) return } c.JSON(status, result) } func (h *AuthHandler) Session(c *gin.Context) { var req officialtypes.OpenAISessionToken if err := c.BindJSON(&req); err != nil { respondError(c, http.StatusBadRequest, err) return } client := bogdanfinn.NewStdClient() result, status, err := chatgpt.GETTokenForSessionToken(client, req.SessionToken, "") if err != nil { c.JSON(http.StatusBadRequest, gin.H{ "error": gin.H{ "message": "Request must be proper JSON", "type": "invalid_request_error", "param": nil, "code": err.Error(), }, }) return } c.JSON(status, result) }