diff --git a/src/highlanderticketing/main.go b/src/highlanderticketing/main.go index 7591ffb4d9ba7413b1127d95b25ad4a03ac87dd1..4af90d21bfd355740cf673d07bab2e1a15d2e605 100644 --- a/src/highlanderticketing/main.go +++ b/src/highlanderticketing/main.go @@ -11,6 +11,7 @@ import ( "gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/handler" "gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/model" "gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/service" + "go.mongodb.org/mongo-driver/bson/primitive" ) func main() { @@ -19,7 +20,10 @@ func main() { if err != nil { log.Fatal(err) } - var model1 = model.Match{1, 12, 12, true, "aaa"} + + // Testen + objectID := primitive.NewObjectID() + var model1 = model.Match{ID: objectID, InitialTicketAmount: 1, AvailableTicketAmount: 1, AwayMatch: true, Location: "aaa"} err1 := service.CreateMatch(&model1) if err1 != nil { fmt.Println(err) @@ -29,6 +33,16 @@ func main() { fmt.Println(err) } fmt.Println(matches) + match, err := service.GetMatchByID(objectID) + if err != nil { + fmt.Println(err) + } + fmt.Println(match) + deleted := service.DeleteAllMatches() + if err != nil { + fmt.Println(deleted) + } + router.HandleFunc("/health", handler.Health).Methods("GET") if err := http.ListenAndServe(":8000", router); err != nil { log.Fatal(err) diff --git a/src/highlanderticketing/model/match.go b/src/highlanderticketing/model/match.go index 554831081d05a88ec0babc123b2ef7abea76e9b0..1311852f811ca4c72f9a5d8c3628dd841a16dc29 100644 --- a/src/highlanderticketing/model/match.go +++ b/src/highlanderticketing/model/match.go @@ -1,13 +1,15 @@ package model +import "go.mongodb.org/mongo-driver/bson/primitive" + type Match struct { - ID uint - InitialTicketAmount int32 - AvailableTicketAmount int32 - AwayMatch bool - Location string + ID primitive.ObjectID `bson:"_id"` + InitialTicketAmount int32 `bson:"initial_ticket_amount"` + AvailableTicketAmount int32 `bson:"available_ticket_amount"` + AwayMatch bool `bson:"away_match"` + Location string `bson:"location"` //Date date.Date - //Travel Travel + //Travel Travel //Orders []Order } diff --git a/src/highlanderticketing/service/match.go b/src/highlanderticketing/service/match.go index 356bcb6416341ba16f69367879a3b08becfa93d7..f974de1d3bcd20a5c96f5dc52fcbab069f5574a5 100644 --- a/src/highlanderticketing/service/match.go +++ b/src/highlanderticketing/service/match.go @@ -6,6 +6,7 @@ import ( "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" "go.mongodb.org/mongo-driver/mongo" ) @@ -23,6 +24,28 @@ func CreateMatch(match *model.Match) error { return nil } +// noch testen +func CreateMatches(list *[]model.Match) error { + insertableList := make([]interface{}, len(*list)) + for i, v := range *list { + insertableList[i] = v + } + + client, err := db.GetMongoClient() + if err != nil { + return err + } + + collection := client.Database(db.DB).Collection(db.MATCHES) + + _, err = collection.InsertMany(context.TODO(), insertableList) + if err != nil { + return err + } + + return nil +} + func GetAllMatches() ([]model.Match, error) { filter := bson.D{{}} matches := []model.Match{} @@ -53,3 +76,34 @@ func GetAllMatches() ([]model.Match, error) { return matches, nil } + +func GetMatchByID(matchID primitive.ObjectID) (*model.Match, error) { + result := model.Match{} + filter := bson.D{primitive.E{Key: "_id", Value: matchID}} + + client, err := db.GetMongoClient() + if err != nil { + return &result, err + } + collection := client.Database(db.DB).Collection(db.MATCHES) + + err = collection.FindOne(context.TODO(), filter).Decode(&result) + if err != nil { + return &result, err + } + return &result, nil +} + +func DeleteAllMatches() error { + selector := bson.D{{}} + client, err := db.GetMongoClient() + if err != nil { + return err + } + collection := client.Database(db.DB).Collection(db.MATCHES) + _, err = collection.DeleteMany(context.TODO(), selector) + if err != nil { + return err + } + return nil +}