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