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
9func (s *Server) handleDeleteSession(e echo.Context) error {
10 ctx := e.Request().Context()
11
12 token := e.Get("token").(string)
13
14 var acctok models.Token
15 if err := s.db.Raw(ctx, "DELETE FROM tokens WHERE token = ? RETURNING *", nil, token).Scan(&acctok).Error; err != nil {
16 s.logger.Error("error deleting access token from db", "error", err)
17 return helpers.ServerError(e, nil)
18 }
19
20 if err := s.db.Exec(ctx, "DELETE FROM refresh_tokens WHERE token = ?", nil, acctok.RefreshToken).Error; err != nil {
21 s.logger.Error("error deleting refresh token from db", "error", err)
22 return helpers.ServerError(e, nil)
23 }
24
25 return e.NoContent(200)
26}