CI / test (push) Successful in 4s
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
26 lines
802 B
Go
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)
|
|
}
|