diff --git a/assignment2/cmd/main.go b/assignment2/cmd/main.go index 5d91f126720697a6d4b854606c72b1bee444a220..8dd4ee727fadf24a70dac1c3f0d865a618d16efb 100644 --- a/assignment2/cmd/main.go +++ b/assignment2/cmd/main.go @@ -14,10 +14,11 @@ var StartTime = time.Now() // sets StartTime func main() { assignment2.StartTime = StartTime // sends StartTime - assignment2.FBInit() - //assignment2.FBSave() - //assignment2.FBRead() - //assignment2.FBDelete() + err := assignment2.FBInit() + if err != nil { + fmt.Println("Error: ", err) + } + defer assignment2.FBClose() port := os.Getenv("PORT") diff --git a/assignment2/firebase.go b/assignment2/firebase.go index 3a469e0cd158a307fdf7801fef3d90248bf48a81..d67f4a2295824a0d858ea3c1a0b4ca056435e152 100644 --- a/assignment2/firebase.go +++ b/assignment2/firebase.go @@ -15,7 +15,7 @@ import ( var fb = FireBase{} -func FBInit() { +func FBInit() error { // Firebase initialisation fb.Ctx = context.Background() // We use a service account, load credentials file that you downloaded from your project's settings menu. @@ -23,7 +23,9 @@ func FBInit() { sa := option.WithCredentialsFile("./cloud-assignment2-fc85f-firebase-adminsdk-14mld-d42cb80420.json") app, err := firebase.NewApp(fb.Ctx, nil, sa) if err != nil { - log.Fatalln(err) + fmt.Printf("Error in FirebaseDatabase.Init() function: %v\n", err) + return errors.Wrap(err, "Error in FirebaseDatabase.Init()") + } fb.Client, err = app.Firestore(fb.Ctx) @@ -35,25 +37,27 @@ func FBInit() { log.Fatalln(err) } + return nil + } func FBClose() { fb.Client.Close() } -func FBSave() { +func FBSave() error { ref := fb.Client.Collection("Webhooks").NewDoc() webhook.ID = ref.ID _, err := ref.Set(fb.Ctx, webhook) if err != nil { fmt.Println("ERROR saving webhook to Firestore DB: ", err) - //return errors.Wrap(err, "Error in FirebaseDatabase.Save()") + return errors.Wrap(err, "Error in FirebaseDatabase.Save()") } - // return nil + return nil } -func FBRead() { +func FBRead() error { iter := fb.Client.Collection("Webhooks").Documents(fb.Ctx) for { doc, err := iter.Next() @@ -64,7 +68,10 @@ func FBRead() { log.Fatalf("Failed to iterate: %v", err) } fmt.Println(doc.Data()) - doc.DataTo(&webhook) // sets data in to webhook struct + err = doc.DataTo(&webhook) // sets data in to webhook struct + if err != nil { + fmt.Println("Error when converting retrieved document to webhook struct: ", err) + } tempCount := 0 // controll for duplicate for i := range webhooks { // lopps true webhooks if webhooks[i].ID == webhook.ID { // cheek it the webhook allready exist @@ -77,25 +84,15 @@ func FBRead() { } } + return nil } func FBDelete(ID string) error { docRef := fb.Client.Collection("Webhooks").Doc(ID) _, err := docRef.Delete(fb.Ctx) if err != nil { - fmt.Printf("ERROR deleting student (%v) from Firestore DB: %v\n", err) + fmt.Printf("ERROR deleting webhook (%v) from Firestore DB: %v\n", err) return errors.Wrap(err, "Error in FirebaseDatabase.Delete()") } return nil } - -// Delete deletes a students from the DB. -// func (db *FirestoreDatabase) Delete(s *Student) error { -// docRef := db.Client.Collection(db.CollectionName).Doc(s.ID) -// _, err := docRef.Delete(db.Ctx) -// if err != nil { -// fmt.Printf("ERROR deleting student (%v) from Firestore DB: %v\n", s, err) -// return errors.Wrap(err, "Error in FirebaseDatabase.Delete()") -// } -// return nil -// } diff --git a/assignment2/test.go b/assignment2/test.go index b762cf5421c0acad825d775783409c2a97513f8f..484178b734c96afd616dc8defe4289eb81baee2c 100644 --- a/assignment2/test.go +++ b/assignment2/test.go @@ -1 +1,7 @@ package assignment2 + +import "testing" + +func TestMockDatabase(t *testing.T) { + +} diff --git a/assignment2/webhook.go b/assignment2/webhook.go index 15ac1ff95ff7e18efde688ccbed55fa1fcd00db8..c680d1780a9c6dd332312eb2365821531b424cc6 100644 --- a/assignment2/webhook.go +++ b/assignment2/webhook.go @@ -31,14 +31,20 @@ func WebhookHandeler(w http.ResponseWriter, r *http.Request) { webhook.Time = time.Now() // sets time stamp - FBSave() // saves webhook to firebase + err = FBSave() // saves webhook to firebase + if err != nil { + fmt.Println("Error: ", err) + } //webhooks = append(webhooks, webhook) // saves webhook to webhooks ***************** look at this one fmt.Fprintln(w, len(webhooks)-1) fmt.Println("Webhooks " + webhook.URL + " has been regstrerd") case http.MethodGet: - FBRead() + err := FBRead() + if err != nil { + fmt.Println("Error: ", err) + } http.Header.Add(w.Header(), "Content-Type", "application/json") // makes the print look good parts := strings.Split(r.URL.Path, "/") //finds url parts fmt.Println(parts)