1package store
2
3import (
4 "context"
5 "time"
6
7 "github.com/charmbracelet/soft-serve/server/db"
8 "github.com/charmbracelet/soft-serve/server/db/models"
9)
10
11// AccessTokenStore is an interface for managing access tokens.
12type AccessTokenStore interface {
13 GetAccessToken(ctx context.Context, h db.Handler, id int64) (models.AccessToken, error)
14 GetAccessTokenByToken(ctx context.Context, h db.Handler, token string) (models.AccessToken, error)
15 GetAccessTokensByUserID(ctx context.Context, h db.Handler, userID int64) ([]models.AccessToken, error)
16 CreateAccessToken(ctx context.Context, h db.Handler, name string, userID int64, token string, expiresAt time.Time) (models.AccessToken, error)
17 DeleteAccessToken(ctx context.Context, h db.Handler, id int64) error
18 DeleteAccessTokenForUser(ctx context.Context, h db.Handler, userID int64, id int64) error
19}