diff --git a/src/highlanderticketing/db/db.go b/src/highlanderticketing/db/db.go index be259014283a8e3a94c5b117956da9415eb60816..fa6214625dd85ce90a9535f90fb00a70d6b3ffeb 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 0000000000000000000000000000000000000000..abeebd162ee44d9c076ced7c51310c2501f7b7af --- /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 0000000000000000000000000000000000000000..abeebd162ee44d9c076ced7c51310c2501f7b7af --- /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 bb69eaff27d33619e31d4a470923584fea27b809..2a8f016fb170170874ad2e27a82cfcf783df0d69 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 575eaf0404e9474bab555080b64258329ce13571..165ed044759be44a2c4898bb29a1f5c325556b45 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 6d43c3366ca3e6c323c783077e9aa02280048c57..9f8b6aace578b4ba203f9b8ec19007d46e0b5667 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 6d43c3366ca3e6c323c783077e9aa02280048c57..196871888dba8cea6e770dac27d23af3acef4995 100644 --- a/src/highlanderticketing/service/travel.go +++ b/src/highlanderticketing/service/travel.go @@ -1 +1,5 @@ package service + +func CreateTravel() { + +}