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