From e7208060fbbb7eaead38d1797bd8ce197289818c Mon Sep 17 00:00:00 2001
From: Yege1893 <yannick.ege@web.de>
Date: Mon, 19 Jun 2023 16:41:11 +0200
Subject: [PATCH] order handling

---
 src/highlanderticketing/handler/order.go | 24 ++++++++++++++++++++++--
 src/highlanderticketing/main.go          |  1 +
 src/highlanderticketing/service/order.go |  8 ++------
 3 files changed, 25 insertions(+), 8 deletions(-)

diff --git a/src/highlanderticketing/handler/order.go b/src/highlanderticketing/handler/order.go
index 72b034f..dc6cd1f 100644
--- a/src/highlanderticketing/handler/order.go
+++ b/src/highlanderticketing/handler/order.go
@@ -15,7 +15,7 @@ func AddMatchOrder(w http.ResponseWriter, r *http.Request) {
 		http.Error(w, err.Error(), http.StatusBadRequest)
 		return
 	}
-	order, err := getMatchOrder(r)
+	order, err := getOrder(r)
 	if err != nil {
 		http.Error(w, err.Error(), http.StatusBadRequest)
 		return
@@ -28,9 +28,29 @@ func AddMatchOrder(w http.ResponseWriter, r *http.Request) {
 	}
 	sendJson(w, order)
 
+}
+func AddTravelOrder(w http.ResponseWriter, r *http.Request) {
+	id, err := getID(r)
+	if err != nil {
+		http.Error(w, err.Error(), http.StatusBadRequest)
+		return
+	}
+	order, err := getOrder(r)
+	if err != nil {
+		http.Error(w, err.Error(), http.StatusBadRequest)
+		return
+	}
+	err = service.AddTravelOrder(id, order)
+	if err != nil {
+		log.Errorf("Failure adding donation to campaign with ID %v: %v", id, err)
+		http.Error(w, err.Error(), http.StatusInternalServerError)
+		return
+	}
+	sendJson(w, order)
+
 }
 
-func getMatchOrder(r *http.Request) (*model.Order, error) {
+func getOrder(r *http.Request) (*model.Order, error) {
 	var order model.Order
 	err := json.NewDecoder(r.Body).Decode(&order)
 	if err != nil {
diff --git a/src/highlanderticketing/main.go b/src/highlanderticketing/main.go
index 3889c23..c05efbe 100644
--- a/src/highlanderticketing/main.go
+++ b/src/highlanderticketing/main.go
@@ -25,6 +25,7 @@ func main() {
 	router.HandleFunc("/match/{id}", handler.UpdateMatch).Methods("PUT")
 	router.HandleFunc("/match/{id}", handler.DeleteMatch).Methods("DELETE")
 	router.HandleFunc("/match/{id}/matchorder", handler.AddMatchOrder).Methods("POST")
+	router.HandleFunc("/match/{id}/travelorder", handler.AddTravelOrder).Methods("POST")
 	if err := http.ListenAndServe(":8000", router); err != nil {
 		log.Fatal(err)
 	}
diff --git a/src/highlanderticketing/service/order.go b/src/highlanderticketing/service/order.go
index c8ac81a..f2f2f43 100644
--- a/src/highlanderticketing/service/order.go
+++ b/src/highlanderticketing/service/order.go
@@ -10,7 +10,6 @@ import (
 	"go.mongodb.org/mongo-driver/bson/primitive"
 )
 
-// noch testen
 func AddMatchOrder(matchID primitive.ObjectID, order *model.Order) error {
 	filter := bson.D{primitive.E{Key: "_id", Value: matchID}}
 	order.ID = primitive.NewObjectID()
@@ -39,6 +38,7 @@ func AddMatchOrder(matchID primitive.ObjectID, order *model.Order) error {
 
 func AddTravelOrder(matchID primitive.ObjectID, order *model.Order) error {
 	filter := bson.D{primitive.E{Key: "_id", Value: matchID}}
+	order.ID = primitive.NewObjectID()
 
 	updater := bson.M{"$push": bson.M{"travel.orders": order}}
 
@@ -59,10 +59,6 @@ func AddTravelOrder(matchID primitive.ObjectID, order *model.Order) error {
 
 	return nil
 }
-
-func UpdateOrder() {
-
-}
-func DeleteOrder() {
+func CancelOrder() {
 
 }
-- 
GitLab