Files
backend/internal/store/interface.go
Andriy Oblivantsev ef3957b618
CI / test (push) Successful in 4s
Demo app, collections/features CRUD, QR codes, docs
Demo app (web/):
- Collections: select, rename, remove (x button per row), delete
- Features: add point (lon/lat validation), remove, list in selected collection
- QR codes for pk (private) and pb (public) keys
- Restore public key from private key
- 409 Conflict handled for already-registered login
- Title: Momswap Geo Backend Use-Cases Test

Backend:
- PATCH /v1/collections/{id} for rename
- DELETE /v1/collections/{id}
- Clearer lon/lat validation errors (-180..180, -90..90)

Client:
- updateCollection, deleteCollection, derivePublicKey

Docs:
- docs/frontend-development.md (demo app, local dev)
- README links to all docs

Made-with: Cursor
2026-03-01 13:41:54 +00:00

26 lines
802 B
Go

package store
import "time"
type Store interface {
UpsertUser(user User)
GetUser(publicKey string) (User, error)
CreateChallenge(ch Challenge) error
GetChallenge(nonce string) (Challenge, error)
MarkChallengeUsed(nonce string) error
SaveSession(session Session)
GetSession(token string) (Session, error)
SaveInvitation(inv Invitation) error
GetInvitation(jti string) (Invitation, error)
IncrementInvitationUsage(jti string) error
SaveCollection(c Collection)
ListCollectionsByOwner(owner string) []Collection
GetCollection(id string) (Collection, error)
DeleteCollection(id string) error
SaveFeature(f Feature)
ListFeaturesByCollection(collectionID string) []Feature
GetFeature(featureID string) (Feature, error)
DeleteFeature(featureID string) error
PruneExpired(now time.Time)
}