lfs.go

 1package store
 2
 3import (
 4	"context"
 5
 6	"github.com/charmbracelet/soft-serve/server/db"
 7	"github.com/charmbracelet/soft-serve/server/db/models"
 8)
 9
10// LFSStore is the interface for the LFS store.
11type LFSStore interface {
12	CreateLFSObject(ctx context.Context, h db.Handler, repoID int64, oid string, size int64) error
13	GetLFSObjectByOid(ctx context.Context, h db.Handler, repoID int64, oid string) (models.LFSObject, error)
14	GetLFSObjects(ctx context.Context, h db.Handler, repoID int64) ([]models.LFSObject, error)
15	GetLFSObjectsByName(ctx context.Context, h db.Handler, name string) ([]models.LFSObject, error)
16	DeleteLFSObjectByOid(ctx context.Context, h db.Handler, repoID int64, oid string) error
17
18	CreateLFSLockForUser(ctx context.Context, h db.Handler, repoID int64, userID int64, path string, refname string) error
19	GetLFSLocks(ctx context.Context, h db.Handler, repoID int64) ([]models.LFSLock, error)
20	GetLFSLocksForUser(ctx context.Context, h db.Handler, repoID int64, userID int64) ([]models.LFSLock, error)
21	GetLFSLocksForPath(ctx context.Context, h db.Handler, repoID int64, path string) ([]models.LFSLock, error)
22	GetLFSLockForUserPath(ctx context.Context, h db.Handler, repoID int64, userID int64, path string) (models.LFSLock, error)
23	GetLFSLockByID(ctx context.Context, h db.Handler, id string) (models.LFSLock, error)
24	GetLFSLockForUserByID(ctx context.Context, h db.Handler, userID int64, id string) (models.LFSLock, error)
25	DeleteLFSLockForUserByID(ctx context.Context, h db.Handler, userID int64, id string) error
26}