diff --git a/app/object-storage/object-storage.go b/app/object-storage/object-storage.go index 258c95057b7bfd5a856c13258afd51e0715f5b61..d664f5f72566506b2dbd8f9b90bce1fadb97adb5 100644 --- a/app/object-storage/object-storage.go +++ b/app/object-storage/object-storage.go @@ -4,6 +4,7 @@ import ( "bufio" "bytes" "context" + "encoding/json" "fmt" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob" @@ -15,32 +16,44 @@ import ( "time" ) -func addTransactionToBlobStorage(transaction Transaction) { - +func addTransactionToBlobStorage(transaction Transaction, database Database, os ObjectStorage) Database { + database = append(database, transaction) + writeDatabaseToBlobStorage(database, os) + return database } -func removeTransactionFromBlobStorage(transaction Transaction) { +func removeTransactionFromBlobStorage(transaction Transaction, database Database) Database { + return database } -func fakeTransaction(transactionToFake Transaction, fakeTransaction Transaction) bool { - return false +func fakeTransaction(transactionToFake Transaction, fakeTransaction Transaction, database Database) Database { + return database } func writeDatabaseToFile(filepath string, db Database) { - } func readDatabaseFromFile(filepath string) Database { - return nil + return Database{} } func readDatabaseFromBlobStorage() Database { - return nil + return Database{} } -func writeDatabaseToBlobStorage() { +func writeDatabaseToBlobStorage(database Database, os ObjectStorage) { + ctx := context.Background() + fmt.Printf("Creating a dummy file to test the upload and download\n") + + data, err := json.Marshal(database) + // Upload to data to blob storage + _, err = os.BlockBlobClient.UploadBufferToBlockBlob(ctx, data, azblob.HighLevelUploadToBlockBlobOption{}) + + if err != nil { + log.Fatalf("Failure to upload to blob: %+v", err) + } } // Azure Storage Quickstart Sample - Demonstrate how to upload, list, download, and delete blobs. @@ -119,16 +132,21 @@ func TestObjectStorage() { blobName := "quickstartblob" + "-" + randomString() objectStorage := InitializeObjectStorage(blobName, azureCreds) - fmt.Printf("Creating a dummy file to test the upload and download\n") - - data := []byte("\nhello world this is a blob\n") - - // Upload to data to blob storage - _, err = blobClient.UploadBufferToBlockBlob(ctx, data, azblob.HighLevelUploadToBlockBlobOption{}) - - if err != nil { - log.Fatalf("Failure to upload to blob: %+v", err) + var db Database + t1 := Transaction{ + Id: "1", + Sender: "0", + Receiver: "1", + Amount: "1000", + } + t2 := Transaction{ + Id: "2", + Sender: "0", + Receiver: "1", + Amount: "1000", } + db = addTransactionToBlobStorage(t1, db) + db = addTransactionToBlobStorage(t2, db) // List the blobs in the container fmt.Println("Listing the blobs in the container:")