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// 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 CreateRepo(ctx context.Context, h db.Handler, name string, projectName string, description string, isPrivate bool, isHidden bool, isMirror bool) error
15 DeleteRepoByName(ctx context.Context, h db.Handler, name string) error
16 SetRepoNameByName(ctx context.Context, h db.Handler, name string, newName string) error
17
18 GetRepoProjectNameByName(ctx context.Context, h db.Handler, name string) (string, error)
19 SetRepoProjectNameByName(ctx context.Context, h db.Handler, name string, projectName string) error
20 GetRepoDescriptionByName(ctx context.Context, h db.Handler, name string) (string, error)
21 SetRepoDescriptionByName(ctx context.Context, h db.Handler, name string, description string) error
22 GetRepoIsPrivateByName(ctx context.Context, h db.Handler, name string) (bool, error)
23 SetRepoIsPrivateByName(ctx context.Context, h db.Handler, name string, isPrivate bool) error
24 GetRepoIsHiddenByName(ctx context.Context, h db.Handler, name string) (bool, error)
25 SetRepoIsHiddenByName(ctx context.Context, h db.Handler, name string, isHidden bool) error
26 GetRepoIsMirrorByName(ctx context.Context, h db.Handler, name string) (bool, error)
27}