diff --git a/assignment2/cmd/main.go b/assignment2/cmd/main.go index 5746a86a9d1da3324b81bcdb568a17ea97a56e50..5d91f126720697a6d4b854606c72b1bee444a220 100644 --- a/assignment2/cmd/main.go +++ b/assignment2/cmd/main.go @@ -17,6 +17,7 @@ func main() { assignment2.FBInit() //assignment2.FBSave() //assignment2.FBRead() + //assignment2.FBDelete() defer assignment2.FBClose() port := os.Getenv("PORT") diff --git a/assignment2/firebase.go b/assignment2/firebase.go index d0cf48400111d3a5ea3779f75a285e2c1d334407..3a469e0cd158a307fdf7801fef3d90248bf48a81 100644 --- a/assignment2/firebase.go +++ b/assignment2/firebase.go @@ -4,6 +4,7 @@ import ( "fmt" "log" + "github.com/pkg/errors" "golang.org/x/net/context" firebase "firebase.google.com/go" // Same as python's import dependency as alias. @@ -77,3 +78,24 @@ func FBRead() { } } + +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) + 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/webhook.go b/assignment2/webhook.go index fe12d85caae9c341c63b009150d1726732d3cd22..8bece483f3b547776a8a55334e573d7a7f7c17f3 100644 --- a/assignment2/webhook.go +++ b/assignment2/webhook.go @@ -61,6 +61,18 @@ func WebhookHandeler(w http.ResponseWriter, r *http.Request) { } } + case http.MethodDelete: + + err := json.NewDecoder(r.Body).Decode(&webhook) //decode to webhook + if err != nil { + http.Error(w, err.Error(), http.StatusBadRequest) + } + + err = FBDelete(webhook.ID) + if err != nil { + fmt.Println("Error: ", err) + } + default: http.Error(w, "Method is invalid "+r.Method, http.StatusBadRequest) }