main pico / pkg / apps / pgs / db / db.go
Antonio Mika  ·  2026-10-11
 1package pgsdb
 2
 3import (
 4	"strings"
 5
 6	"github.com/picosh/pico/pkg/db"
 7)
 8
 9type PgsDB interface {
10	db.AuthDB
11	FindUsers() ([]*db.User, error)
12
13	InsertProject(userID, name, projectDir string) (string, error)
14	UpdateProject(userID, name string) error
15	UpdateProjectAcl(userID, name string, acl db.ProjectAcl) error
16	UpsertProject(userID, projectName, projectDir string) (*db.Project, error)
17	RemoveProject(projectID string) error
18	LinkToProject(userID, projectID, projectDir string, commit bool) error
19	FindProjectByName(userID, name string) (*db.Project, error)
20	FindProjectLinks(userID, name string) ([]*db.Project, error)
21	FindProjectsByUser(userID string) ([]*db.Project, error)
22	FindProjectsByPrefix(userID, name string) ([]*db.Project, error)
23	FindProjects(by string) ([]*db.Project, error)
24
25	InsertFormEntry(userID, name string, data map[string]interface{}) error
26	FindFormEntriesByUserAndName(userID, name string) ([]*db.FormEntry, error)
27	FindFormNamesByUser(userID string) ([]string, error)
28	RemoveFormEntriesByUserAndName(userID, name string) error
29
30	RegisterAdmin(username, pubkey, pubkeyName string) error
31
32	Close() error
33}
34
35func IsProjectPrivate(projectName string) bool {
36	return strings.HasPrefix(projectName, "private-")
37}