From 240458169b1590c62729aec3ee3bcffda0930254 Mon Sep 17 00:00:00 2001
From: Xavier Perret <xa.perret@outlook.com>
Date: Mon, 17 Oct 2022 19:40:40 +0200
Subject: [PATCH] added function to upload files

---
 app/object-storage/object-storage.go | 54 ++++++++++++++++++----------
 1 file changed, 36 insertions(+), 18 deletions(-)

diff --git a/app/object-storage/object-storage.go b/app/object-storage/object-storage.go
index 258c950..d664f5f 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:")
-- 
GitLab