diff --git a/src/highlanderticketing/handler/order.go b/src/highlanderticketing/handler/order.go index 72b034f7e23ef44ee6a039334e4a786aba79a5db..dc6cd1fb5543b473aa02743fb1f4d3d1e6fd3ac2 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 3889c2379f727b7de6d1d1116e6caa2449e51892..c05efbebf8855c51f55845ea421a525dc7d48c4b 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 c8ac81acc5cc238f3d02e380197553dea3c93c57..f2f2f430a340a01dce3032aeeede63e670db1077 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() { }