this repo has no description
1package server 2 3import ( 4 "github.com/haileyok/cocoon/internal/helpers" 5 "github.com/haileyok/cocoon/models" 6 "github.com/labstack/echo/v4" 7) 8 9type ComAtprotoServerRefreshSessionResponse struct { 10 AccessJwt string `json:"accessJwt"` 11 RefreshJwt string `json:"refreshJwt"` 12 Handle string `json:"handle"` 13 Did string `json:"did"` 14 Active bool `json:"active"` 15 Status *string `json:"status,omitempty"` 16} 17 18func (s *Server) handleRefreshSession(e echo.Context) error { 19 ctx := e.Request().Context() 20 21 token := e.Get("token").(string) 22 repo := e.Get("repo").(*models.RepoActor) 23 24 if err := s.db.Exec(ctx, "DELETE FROM refresh_tokens WHERE token = ?", nil, token).Error; err != nil { 25 s.logger.Error("error getting refresh token from db", "error", err) 26 return helpers.ServerError(e, nil) 27 } 28 29 if err := s.db.Exec(ctx, "DELETE FROM tokens WHERE refresh_token = ?", nil, token).Error; err != nil { 30 s.logger.Error("error deleting access token from db", "error", err) 31 return helpers.ServerError(e, nil) 32 } 33 34 sess, err := s.createSession(ctx, &repo.Repo) 35 if err != nil { 36 s.logger.Error("error creating new session for refresh", "error", err) 37 return helpers.ServerError(e, nil) 38 } 39 40 return e.JSON(200, ComAtprotoServerRefreshSessionResponse{ 41 AccessJwt: sess.AccessToken, 42 RefreshJwt: sess.RefreshToken, 43 Handle: repo.Handle, 44 Did: repo.Repo.Did, 45 Active: repo.Active(), 46 Status: repo.Status(), 47 }) 48}