repos / pico

pico services mono repo
git clone https://github.com/picosh/pico.git

pico / pkg / db / stub
Eric Bower  ·  2026-01-08

stub.go

  1package stub
  2
  3import (
  4	"fmt"
  5	"log/slog"
  6	"time"
  7
  8	"github.com/picosh/pico/pkg/db"
  9)
 10
 11type StubDB struct {
 12	Logger *slog.Logger
 13}
 14
 15var _ db.DB = (*StubDB)(nil)
 16
 17func NewStubDB(logger *slog.Logger) *StubDB {
 18	d := &StubDB{
 19		Logger: logger,
 20	}
 21	d.Logger.Info("Connecting to test database")
 22	return d
 23}
 24
 25var errNotImpl = fmt.Errorf("not implemented")
 26
 27func (me *StubDB) RegisterUser(username, pubkey, comment string) (*db.User, error) {
 28	return nil, errNotImpl
 29}
 30
 31func (me *StubDB) UpdatePublicKey(pubkeyID, name string) (*db.PublicKey, error) {
 32	return nil, errNotImpl
 33}
 34
 35func (me *StubDB) InsertPublicKey(userID, key, name string) error {
 36	return errNotImpl
 37}
 38
 39func (me *StubDB) FindKeysByUser(user *db.User) ([]*db.PublicKey, error) {
 40	return []*db.PublicKey{}, errNotImpl
 41}
 42
 43func (me *StubDB) RemoveKeys(keyIDs []string) error {
 44	return errNotImpl
 45}
 46
 47func (me *StubDB) FindUserByKey(username string, key string) (*db.User, error) {
 48	return nil, errNotImpl
 49}
 50
 51func (me *StubDB) FindUserByPubkey(key string) (*db.User, error) {
 52	return nil, errNotImpl
 53}
 54
 55func (me *StubDB) FindUser(userID string) (*db.User, error) {
 56	return nil, errNotImpl
 57}
 58
 59func (me *StubDB) FindUserByName(name string) (*db.User, error) {
 60	return nil, errNotImpl
 61}
 62
 63func (me *StubDB) FindUserByToken(token string) (*db.User, error) {
 64	return nil, errNotImpl
 65}
 66
 67func (me *StubDB) FindPostWithFilename(filename string, persona_id string, space string) (*db.Post, error) {
 68	return nil, errNotImpl
 69}
 70
 71func (me *StubDB) FindPostWithSlug(slug string, user_id string, space string) (*db.Post, error) {
 72	return nil, errNotImpl
 73}
 74
 75func (me *StubDB) FindPost(postID string) (*db.Post, error) {
 76	return nil, errNotImpl
 77}
 78
 79func (me *StubDB) FindPostsByFeed(page *db.Pager, space string) (*db.Paginate[*db.Post], error) {
 80	return &db.Paginate[*db.Post]{}, errNotImpl
 81}
 82
 83func (me *StubDB) InsertPost(post *db.Post) (*db.Post, error) {
 84	return nil, errNotImpl
 85}
 86
 87func (me *StubDB) UpdatePost(post *db.Post) (*db.Post, error) {
 88	return nil, errNotImpl
 89}
 90
 91func (me *StubDB) RemovePosts(postIDs []string) error {
 92	return errNotImpl
 93}
 94
 95func (me *StubDB) FindPostsByUser(page *db.Pager, userID string, space string) (*db.Paginate[*db.Post], error) {
 96	return &db.Paginate[*db.Post]{}, errNotImpl
 97}
 98
 99func (me *StubDB) FindAllPostsByUser(userID string, space string) ([]*db.Post, error) {
100	return []*db.Post{}, errNotImpl
101}
102
103func (me *StubDB) FindPosts() ([]*db.Post, error) {
104	return []*db.Post{}, errNotImpl
105}
106
107func (me *StubDB) FindExpiredPosts(space string) ([]*db.Post, error) {
108	return []*db.Post{}, errNotImpl
109}
110
111func (me *StubDB) Close() error {
112	return errNotImpl
113}
114
115func (me *StubDB) InsertVisit(view *db.AnalyticsVisits) error {
116	return errNotImpl
117}
118
119func (me *StubDB) VisitSummary(opts *db.SummaryOpts) (*db.SummaryVisits, error) {
120	return &db.SummaryVisits{}, errNotImpl
121}
122
123func (me *StubDB) FindVisitSiteList(opts *db.SummaryOpts) ([]*db.VisitUrl, error) {
124	return []*db.VisitUrl{}, errNotImpl
125}
126
127func (me *StubDB) FindUsers() ([]*db.User, error) {
128	return []*db.User{}, errNotImpl
129}
130
131func (me *StubDB) ReplaceTagsByPost(tags []string, postID string) error {
132	return errNotImpl
133}
134
135func (me *StubDB) ReplaceAliasesByPost(aliases []string, postID string) error {
136	return errNotImpl
137}
138
139func (me *StubDB) FindUserPostsByTag(page *db.Pager, tag, userID, space string) (*db.Paginate[*db.Post], error) {
140	return &db.Paginate[*db.Post]{}, errNotImpl
141}
142
143func (me *StubDB) FindPostsByTag(pager *db.Pager, tag, space string) (*db.Paginate[*db.Post], error) {
144	return &db.Paginate[*db.Post]{}, errNotImpl
145}
146
147func (me *StubDB) FindPopularTags(space string) ([]string, error) {
148	return []string{}, errNotImpl
149}
150
151func (me *StubDB) FindFeature(userID string, feature string) (*db.FeatureFlag, error) {
152	return nil, errNotImpl
153}
154
155func (me *StubDB) FindFeaturesByUser(userID string) ([]*db.FeatureFlag, error) {
156	return []*db.FeatureFlag{}, errNotImpl
157}
158
159func (me *StubDB) HasFeatureByUser(userID string, feature string) bool {
160	return false
161}
162
163func (me *StubDB) InsertFeedItems(postID string, items []*db.FeedItem) error {
164	return errNotImpl
165}
166
167func (me *StubDB) FindFeedItemsByPostID(postID string) ([]*db.FeedItem, error) {
168	return []*db.FeedItem{}, errNotImpl
169}
170
171func (me *StubDB) UpsertProject(userID, name, projectDir string) (*db.Project, error) {
172	return nil, errNotImpl
173}
174
175func (me *StubDB) FindProjectByName(userID, name string) (*db.Project, error) {
176	return &db.Project{}, errNotImpl
177}
178
179func (me *StubDB) InsertToken(userID, name string) (string, error) {
180	return "", errNotImpl
181}
182
183func (me *StubDB) UpsertToken(userID, name string) (string, error) {
184	return "", errNotImpl
185}
186
187func (me *StubDB) RemoveToken(tokenID string) error {
188	return errNotImpl
189}
190
191func (me *StubDB) FindTokensByUser(userID string) ([]*db.Token, error) {
192	return []*db.Token{}, errNotImpl
193}
194
195func (me *StubDB) InsertFeature(userID, name string, expiresAt time.Time) (*db.FeatureFlag, error) {
196	return nil, errNotImpl
197}
198
199func (me *StubDB) RemoveFeature(userID string, name string) error {
200	return errNotImpl
201}
202
203func (me *StubDB) AddPicoPlusUser(username, email, paymentType, txId string) error {
204	return errNotImpl
205}
206
207func (me *StubDB) FindUserStats(userID string) (*db.UserStats, error) {
208	return nil, errNotImpl
209}
210
211func (me *StubDB) InsertTunsEventLog(log *db.TunsEventLog) error {
212	return errNotImpl
213}
214
215func (me *StubDB) FindTunsEventLogsByAddr(userID, addr string) ([]*db.TunsEventLog, error) {
216	return nil, errNotImpl
217}
218
219func (me *StubDB) FindTunsEventLogs(userID string) ([]*db.TunsEventLog, error) {
220	return nil, errNotImpl
221}
222
223func (me *StubDB) VisitUrlNotFound(opts *db.SummaryOpts) ([]*db.VisitUrl, error) {
224	return nil, errNotImpl
225}
226
227func (me *StubDB) FindUsersWithPost(space string) ([]*db.User, error) {
228	return nil, errNotImpl
229}
230
231func (me *StubDB) FindAccessLogs(userID string, fromDate *time.Time) ([]*db.AccessLog, error) {
232	return nil, errNotImpl
233}
234
235func (me *StubDB) FindAccessLogsByPubkey(pubkey string, fromDate *time.Time) ([]*db.AccessLog, error) {
236	return nil, errNotImpl
237}
238
239func (me *StubDB) FindPubkeysInAccessLogs(userID string) ([]string, error) {
240	return []string{}, errNotImpl
241}
242
243func (me *StubDB) InsertAccessLog(log *db.AccessLog) error {
244	return errNotImpl
245}
246
247func (me *StubDB) UpsertPipeMonitor(userID, topic string, dur time.Duration, winEnd *time.Time) error {
248	return errNotImpl
249}
250
251func (me *StubDB) UpdatePipeMonitorLastPing(userID, topic string, lastPing *time.Time) error {
252	return errNotImpl
253}
254
255func (me *StubDB) RemovePipeMonitor(userID, topic string) error {
256	return errNotImpl
257}
258
259func (me *StubDB) FindPipeMonitorByTopic(userID, topic string) (*db.PipeMonitor, error) {
260	return nil, errNotImpl
261}
262
263func (me *StubDB) FindPipeMonitorsByUser(userID string) ([]*db.PipeMonitor, error) {
264	return nil, errNotImpl
265}
266
267func (me *StubDB) InsertPipeMonitorHistory(monitorID string, windowDur time.Duration, windowEnd, lastPing *time.Time) error {
268	return errNotImpl
269}
270
271func (me *StubDB) FindPipeMonitorHistory(monitorID string, from, to time.Time) ([]*db.PipeMonitorHistory, error) {
272	return nil, errNotImpl
273}