Something went wrong. Try again.
An atproto PDS written in Go
Something went wrong. Try again.
Go
at push-based
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950package server
import ( "github.com/haileyok/cocoon/internal/helpers" "github.com/haileyok/cocoon/models" "github.com/labstack/echo/v4")
type ComAtprotoServerRefreshSessionResponse struct { AccessJwt string `json:"accessJwt"` RefreshJwt string `json:"refreshJwt"` Handle string `json:"handle"` Did string `json:"did"` Active bool `json:"active"` Status *string `json:"status,omitempty"`}
func (s *Server) handleRefreshSession(e echo.Context) error { ctx := e.Request().Context() logger := s.logger.With("name", "handleServerRefreshSession")
token := e.Get("token").(string) repo := e.Get("repo").(*models.RepoActor)
if err := s.db.Exec(ctx, "DELETE FROM refresh_tokens WHERE token = ?", nil, token).Error; err != nil { logger.Error("error getting refresh token from db", "error", err) return helpers.ServerError(e, nil) }
if err := s.db.Exec(ctx, "DELETE FROM tokens WHERE refresh_token = ?", nil, token).Error; err != nil { logger.Error("error deleting access token from db", "error", err) return helpers.ServerError(e, nil) }
sess, err := s.createSession(ctx, &repo.Repo) if err != nil { logger.Error("error creating new session for refresh", "error", err) return helpers.ServerError(e, nil) }
return e.JSON(200, ComAtprotoServerRefreshSessionResponse{ AccessJwt: sess.AccessToken, RefreshJwt: sess.RefreshToken, Handle: repo.Handle, Did: repo.Repo.Did, Active: repo.Active(), Status: repo.Status(), })}