Files
backend/internal/store/interface.go
Andriy Oblivantsev e00280b653
CI / test (push) Successful in 3s
Merge branch 'feature/assets-s3-sharing'
Integrate asset metadata/storage support, TypeScript client asset APIs, docs updates, and the Leaflet demo while resolving conflicts with recent challenge IP/login persistence changes on main.

Made-with: Cursor
2026-03-02 21:23:31 +00:00

34 lines
1.2 KiB
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
SaveUserLogin(ul UserLogin)
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
SaveAsset(a Asset)
GetAsset(assetID string) (Asset, error)
GetAssetByOwnerChecksumExt(ownerKey, checksum, ext string) (Asset, error)
SetAssetPublic(assetID string, isPublic bool) error
LinkAssetToFeature(featureID, assetID, name, description string) error
UnlinkAssetFromFeature(featureID, assetID string) error
ListAssetsByFeature(featureID string) []FeatureAsset
PruneExpired(now time.Time)
}