From 88e9311084b3b3f3512aa5c59d1acec62efa1b3e Mon Sep 17 00:00:00 2001 From: i5heu Date: Thu, 16 May 2024 15:23:18 +0200 Subject: [PATCH] Refactor storage package to use StorageService interface instead of *storage.Storage --- pkg/storage/normalEvent.go | 6 +++--- pkg/storage/rootEvents.go | 8 ++++---- pkg/storage/storage.go | 16 ++++++++-------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/pkg/storage/normalEvent.go b/pkg/storage/normalEvent.go index 0e0cbc8..6106ddd 100644 --- a/pkg/storage/normalEvent.go +++ b/pkg/storage/normalEvent.go @@ -23,7 +23,7 @@ type EventOptions struct { FullTextSearch bool // optional } -func (ss *storage) CreateNewEvent(options EventOptions) (types.Event, error) { +func (ss *Storage) CreateNewEvent(options EventOptions) (types.Event, error) { // Create a new Event item := types.Event{ Key: []byte{}, @@ -87,7 +87,7 @@ func (ss *storage) CreateNewEvent(options EventOptions) (types.Event, error) { return item, err } -func (ss *storage) GetEvent(hashOfEvent [64]byte) (types.Event, error) { +func (ss *Storage) GetEvent(hashOfEvent [64]byte) (types.Event, error) { // Read the EventChainItem from the keyValStore value, err := ss.kv.Read(GenerateKeyFromPrefixAndHash("Event:", hashOfEvent)) if err != nil { @@ -99,7 +99,7 @@ func (ss *storage) GetEvent(hashOfEvent [64]byte) (types.Event, error) { return binaryCoder.ByteToEvent(value) } -func (ss *storage) GetAllEvents() ([]types.Event, error) { +func (ss *Storage) GetAllEvents() ([]types.Event, error) { items, err := ss.kv.GetItemsWithPrefix([]byte("Event:")) if err != nil { return nil, err diff --git a/pkg/storage/rootEvents.go b/pkg/storage/rootEvents.go index 75b02a0..0d9ddcf 100644 --- a/pkg/storage/rootEvents.go +++ b/pkg/storage/rootEvents.go @@ -21,7 +21,7 @@ func init() { // Same as Event struct in storageService.go but without some unnecessary fields -func (ss *storage) CreateRootEvent(title string) (types.Event, error) { +func (ss *Storage) CreateRootEvent(title string) (types.Event, error) { // Create a new IndexEvent item := types.Event{ Key: []byte{}, @@ -70,7 +70,7 @@ func (ss *storage) CreateRootEvent(title string) (types.Event, error) { return item, err } -func (ss *storage) GetAllRootEvents() ([]types.Event, error) { +func (ss *Storage) GetAllRootEvents() ([]types.Event, error) { // Get all keys from the keyValStore rootIndex, err := ss.GetRootIndex() if err != nil { @@ -97,7 +97,7 @@ func (ss *storage) GetAllRootEvents() ([]types.Event, error) { return rootEvents, nil } -func (ss *storage) GetRootIndex() ([]types.RootEventsIndex, error) { +func (ss *Storage) GetRootIndex() ([]types.RootEventsIndex, error) { // Get all keys from the keyValStore rootIndex, err := ss.kv.GetItemsWithPrefix([]byte("RootEvent:")) if err != nil { @@ -117,7 +117,7 @@ func (ss *storage) GetRootIndex() ([]types.RootEventsIndex, error) { return revi, nil } -func (ss *storage) GetRootEventsWithTitle(title string) ([]types.Event, error) { +func (ss *Storage) GetRootEventsWithTitle(title string) ([]types.Event, error) { rootIndex, err := ss.kv.GetItemsWithPrefix([]byte("RootEvent:" + title + ":")) if err != nil { log.Fatalf("Error getting keys: %v", err) diff --git a/pkg/storage/storage.go b/pkg/storage/storage.go index 6bf15cd..3d1524f 100644 --- a/pkg/storage/storage.go +++ b/pkg/storage/storage.go @@ -10,7 +10,7 @@ import ( "github.com/i5heu/ouroboros-db/pkg/types" ) -type storage struct { +type Storage struct { kv *keyValStore.KeyValStore } @@ -23,17 +23,17 @@ type StoreFileOptions struct { } func NewStorage(kv *keyValStore.KeyValStore) StorageService { - return &storage{ + return &Storage{ kv: kv, } } -func (ss *storage) Close() { +func (ss *Storage) Close() { ss.kv.Close() } // will store the file in the chunkStore and create new Event as child of given event -func (ss *storage) StoreFile(options StoreFileOptions) (types.Event, error) { +func (ss *Storage) StoreFile(options StoreFileOptions) (types.Event, error) { // Validate options before proceeding err := options.ValidateOptions() if err != nil { @@ -119,7 +119,7 @@ func (options *StoreFileOptions) ValidateOptions() error { return nil } -func (ss *storage) GetFile(eventOfFile types.Event) ([]byte, error) { +func (ss *Storage) GetFile(eventOfFile types.Event) ([]byte, error) { file := []byte{} for _, hash := range eventOfFile.ContentHashes { @@ -134,7 +134,7 @@ func (ss *storage) GetFile(eventOfFile types.Event) ([]byte, error) { return file, nil } -func (ss *storage) GetMetadata(eventOfFile types.Event) ([]byte, error) { +func (ss *Storage) GetMetadata(eventOfFile types.Event) ([]byte, error) { metadata := []byte{} for _, hash := range eventOfFile.MetadataHashes { @@ -149,7 +149,7 @@ func (ss *storage) GetMetadata(eventOfFile types.Event) ([]byte, error) { return metadata, nil } -func (ss *storage) storeDataInChunkStore(data []byte) ([][64]byte, error) { +func (ss *Storage) storeDataInChunkStore(data []byte) ([][64]byte, error) { if len(data) == 0 { return nil, fmt.Errorf("Error storing data: Data is empty") } @@ -175,6 +175,6 @@ func (ss *storage) storeDataInChunkStore(data []byte) ([][64]byte, error) { return keys, nil } -func (ss *storage) GarbageCollection() error { +func (ss *Storage) GarbageCollection() error { return ss.kv.Clean() }