access_token.go

 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}