1package store
2
3import (
4 "context"
5
6 "github.com/charmbracelet/soft-serve/pkg/db"
7 "github.com/charmbracelet/soft-serve/pkg/db/models"
8)
9
10// RepositoryStore is an interface for managing repositories.
11type RepositoryStore interface {
12 GetRepoByName(ctx context.Context, h db.Handler, name string) (models.Repo, error)
13 GetAllRepos(ctx context.Context, h db.Handler) ([]models.Repo, error)
14 GetUserRepos(ctx context.Context, h db.Handler, userID int64) ([]models.Repo, error)
15 CreateRepo(ctx context.Context, h db.Handler, name string, userID int64, projectName string, description string, isPrivate bool, isHidden bool, isMirror bool) error
16 DeleteRepoByName(ctx context.Context, h db.Handler, name string) error
17 SetRepoNameByName(ctx context.Context, h db.Handler, name string, newName string) error
18
19 GetRepoProjectNameByName(ctx context.Context, h db.Handler, name string) (string, error)
20 SetRepoProjectNameByName(ctx context.Context, h db.Handler, name string, projectName string) error
21 GetRepoDescriptionByName(ctx context.Context, h db.Handler, name string) (string, error)
22 SetRepoDescriptionByName(ctx context.Context, h db.Handler, name string, description string) error
23 GetRepoIsPrivateByName(ctx context.Context, h db.Handler, name string) (bool, error)
24 SetRepoIsPrivateByName(ctx context.Context, h db.Handler, name string, isPrivate bool) error
25 GetRepoIsHiddenByName(ctx context.Context, h db.Handler, name string) (bool, error)
26 SetRepoIsHiddenByName(ctx context.Context, h db.Handler, name string, isHidden bool) error
27 GetRepoIsMirrorByName(ctx context.Context, h db.Handler, name string) (bool, error)
28}