forked from urdt/ussd
implement db for user datastore
This commit is contained in:
parent
0cdb23fbea
commit
134aa96194
81
internal/utils/userStore.go
Normal file
81
internal/utils/userStore.go
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
package utils
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"git.defalsify.org/vise.git/db"
|
||||||
|
"git.defalsify.org/vise.git/lang"
|
||||||
|
)
|
||||||
|
|
||||||
|
type DataStore interface {
|
||||||
|
SetPrefix(prefix uint8)
|
||||||
|
SetSession(sessionId string)
|
||||||
|
Get(ctx context.Context, key []byte) ([]byte, error)
|
||||||
|
ReadEntry(ctx context.Context, sessionId string, typ DataTyp) ([]byte, error)
|
||||||
|
WriteEntry(ctx context.Context, sessionId string, typ DataTyp, value []byte) error
|
||||||
|
Connect(ctx context.Context, connStr string) error
|
||||||
|
SetLanguage(*lang.Language)
|
||||||
|
Close() error
|
||||||
|
Prefix() uint8
|
||||||
|
Put(ctx context.Context, key []byte, val []byte) error
|
||||||
|
Safe() bool
|
||||||
|
SetLock(typ uint8, locked bool) error
|
||||||
|
}
|
||||||
|
|
||||||
|
type UserDataStore struct {
|
||||||
|
Store db.Db
|
||||||
|
}
|
||||||
|
|
||||||
|
func (store UserDataStore) SetPrefix(prefix uint8) {
|
||||||
|
store.Store.SetPrefix(prefix)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (store UserDataStore) SetLanguage(lang *lang.Language) {
|
||||||
|
store.Store.SetLanguage(lang)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (store UserDataStore) SetLock(typ uint8, locked bool) error {
|
||||||
|
return store.Store.SetLock(typ, locked)
|
||||||
|
}
|
||||||
|
func (store UserDataStore) Safe() bool {
|
||||||
|
return store.Store.Safe()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (store UserDataStore) Put(ctx context.Context, key []byte, val []byte) error {
|
||||||
|
return store.Store.Put(ctx, key, val)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (store UserDataStore) Connect(ctx context.Context, connectionStr string) error {
|
||||||
|
return store.Store.Connect(ctx, connectionStr)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (store UserDataStore) Close() error {
|
||||||
|
return store.Store.Close()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (store UserDataStore) Prefix() uint8 {
|
||||||
|
return store.Store.Prefix()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (store UserDataStore) SetSession(sessionId string) {
|
||||||
|
store.Store.SetSession(sessionId)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (store UserDataStore) Get(ctx context.Context, key []byte) ([]byte, error) {
|
||||||
|
return store.Store.Get(ctx, key)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ReadEntry retrieves an entry from the store based on the provided parameters.
|
||||||
|
func (store UserDataStore) ReadEntry(ctx context.Context, sessionId string, typ DataTyp) ([]byte, error) {
|
||||||
|
store.Store.SetPrefix(db.DATATYPE_USERDATA)
|
||||||
|
store.Store.SetSession(sessionId)
|
||||||
|
k := PackKey(typ, []byte(sessionId))
|
||||||
|
return store.Get(ctx, k)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (store UserDataStore) WriteEntry(ctx context.Context, sessionId string, typ DataTyp, value []byte) error {
|
||||||
|
store.Store.SetPrefix(db.DATATYPE_USERDATA)
|
||||||
|
store.Store.SetSession(sessionId)
|
||||||
|
k := PackKey(typ, []byte(sessionId))
|
||||||
|
return store.Store.Put(ctx, k, value)
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user