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