From d02ca0a7b35cd362ce48079593516272a99c19a9 Mon Sep 17 00:00:00 2001
From: Yege1893 <yannick.ege@web.de>
Date: Sun, 18 Jun 2023 17:08:42 +0200
Subject: [PATCH] order parts of it

---
 src/highlanderticketing/db/db.go          |  1 +
 src/highlanderticketing/handler/order.go  |  1 +
 src/highlanderticketing/handler/travel.go |  1 +
 src/highlanderticketing/model/order.go    |  9 ++-
 src/highlanderticketing/service/match.go  |  4 +-
 src/highlanderticketing/service/order.go  | 78 +++++++++++++++++++++++
 src/highlanderticketing/service/travel.go |  4 ++
 7 files changed, 93 insertions(+), 5 deletions(-)
 create mode 100644 src/highlanderticketing/handler/order.go
 create mode 100644 src/highlanderticketing/handler/travel.go

diff --git a/src/highlanderticketing/db/db.go b/src/highlanderticketing/db/db.go
index be25901..fa62146 100644
--- a/src/highlanderticketing/db/db.go
+++ b/src/highlanderticketing/db/db.go
@@ -18,6 +18,7 @@ const (
 	CONNECTIONSTRING = "mongodb://localhost:27017"
 	DB               = "db_issue_manager"
 	MATCHES          = "col_matches"
+	TRAVEL           = "col_travel"
 	POOL_SIZE        = 10 // Anzahl der Verbindungen im Pool
 )
 
diff --git a/src/highlanderticketing/handler/order.go b/src/highlanderticketing/handler/order.go
new file mode 100644
index 0000000..abeebd1
--- /dev/null
+++ b/src/highlanderticketing/handler/order.go
@@ -0,0 +1 @@
+package handler
diff --git a/src/highlanderticketing/handler/travel.go b/src/highlanderticketing/handler/travel.go
new file mode 100644
index 0000000..abeebd1
--- /dev/null
+++ b/src/highlanderticketing/handler/travel.go
@@ -0,0 +1 @@
+package handler
diff --git a/src/highlanderticketing/model/order.go b/src/highlanderticketing/model/order.go
index bb69eaf..2a8f016 100644
--- a/src/highlanderticketing/model/order.go
+++ b/src/highlanderticketing/model/order.go
@@ -1,9 +1,12 @@
 package model
 
+import "go.mongodb.org/mongo-driver/bson/primitive"
+
 type Order struct {
-	OrderType OrderType
-	Amount    int32
-	User      User
+	ID        primitive.ObjectID `bson:"_id, omitempty"`
+	OrderType OrderType          `bson:"order_type"`
+	Amount    int32              `bson:"amount"`
+	User      User               `bson:"user"`
 }
 type OrderType string
 
diff --git a/src/highlanderticketing/service/match.go b/src/highlanderticketing/service/match.go
index 575eaf0..165ed04 100644
--- a/src/highlanderticketing/service/match.go
+++ b/src/highlanderticketing/service/match.go
@@ -27,7 +27,7 @@ func CreateMatch(match *model.Match) error {
 }
 
 // noch testen nur intern für anbindung an die api
-func CreateMatches(list *[]model.Match) error {
+/*func CreateMatches(list *[]model.Match) error {
 	insertableList := make([]interface{}, len(*list))
 	for i, v := range *list {
 		insertableList[i] = v
@@ -46,7 +46,7 @@ func CreateMatches(list *[]model.Match) error {
 	}
 
 	return nil
-}
+}*/
 
 func UpdateMatch(matchID primitive.ObjectID, match *model.Match) (*model.Match, error) {
 	result := model.Match{}
diff --git a/src/highlanderticketing/service/order.go b/src/highlanderticketing/service/order.go
index 6d43c33..9f8b6aa 100644
--- a/src/highlanderticketing/service/order.go
+++ b/src/highlanderticketing/service/order.go
@@ -1 +1,79 @@
 package service
+
+import (
+	"context"
+	"fmt"
+
+	"gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/db"
+	"gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/model"
+	"go.mongodb.org/mongo-driver/bson"
+	"go.mongodb.org/mongo-driver/bson/primitive"
+)
+
+// noch testen
+func AddMatchOrder(matchID primitive.ObjectID, order model.Order) error {
+	existingMatch, err := GetMatchByID(matchID)
+	if existingMatch == nil || err != nil {
+		return err
+	}
+
+	filter := bson.D{primitive.E{Key: "_id", Value: matchID}}
+
+	updater := bson.D{primitive.E{Key: "$push", Value: bson.D{
+		primitive.E{Key: "orders", Value: order},
+	}}}
+
+	client, err := db.GetMongoClient()
+	if err != nil {
+		return err
+	}
+	collection := client.Database(db.DB).Collection(db.MATCHES)
+
+	updateResult, err := collection.UpdateOne(context.TODO(), filter, updater)
+	if err != nil {
+		return err
+	}
+
+	if updateResult.ModifiedCount == 0 {
+		return fmt.Errorf("no document was updated")
+	}
+
+	return nil
+}
+
+/*func AddTravelOrder(travelID primitive.ObjectID, order model.Order) error {
+	existingTravel, err := GetTravelByID(travelID)
+	if existingTravel == nil || err != nil {
+		return err
+	}
+
+	filter := bson.D{primitive.E{Key: "_id", Value: travelID}}
+
+	updater := bson.D{primitive.E{Key: "$push", Value: bson.D{
+		primitive.E{Key: "orders", Value: order},
+	}}}
+
+	client, err := db.GetMongoClient()
+	if err != nil {
+		return err
+	}
+	collection := client.Database(db.DB).Collection(db.TRAVEL)
+
+	updateResult, err := collection.UpdateOne(context.TODO(), filter, updater)
+	if err != nil {
+		return err
+	}
+
+	if updateResult.ModifiedCount == 0 {
+		return fmt.Errorf("no document was updated")
+	}
+
+	return nil
+}*/
+
+func UpdateOrder() {
+
+}
+func DeleteOrder() {
+
+}
diff --git a/src/highlanderticketing/service/travel.go b/src/highlanderticketing/service/travel.go
index 6d43c33..1968718 100644
--- a/src/highlanderticketing/service/travel.go
+++ b/src/highlanderticketing/service/travel.go
@@ -1 +1,5 @@
 package service
+
+func CreateTravel() {
+
+}
-- 
GitLab