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