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