ussd/internal/utils/userStore.go
2024-10-30 01:28:55 +00:00

35 lines
969 B
Go

package utils
import (
"context"
"git.grassecon.net/urdt/ussd/common"
"git.defalsify.org/vise.git/db"
)
type DataStore interface {
db.Db
ReadEntry(ctx context.Context, sessionId string, typ common.DataTyp) ([]byte, error)
WriteEntry(ctx context.Context, sessionId string, typ common.DataTyp, value []byte) error
}
type UserDataStore struct {
db.Db
}
// ReadEntry retrieves an entry from the store based on the provided parameters.
func (store *UserDataStore) ReadEntry(ctx context.Context, sessionId string, typ common.DataTyp) ([]byte, error) {
store.SetPrefix(db.DATATYPE_USERDATA)
store.SetSession(sessionId)
k := common.PackKey(typ, []byte(sessionId))
return store.Get(ctx, k)
}
func (store *UserDataStore) WriteEntry(ctx context.Context, sessionId string, typ common.DataTyp, value []byte) error {
store.SetPrefix(db.DATATYPE_USERDATA)
store.SetSession(sessionId)
k := common.PackKey(typ, []byte(sessionId))
return store.Put(ctx, k, value)
}