diff --git a/src/emailnotification/main.go b/src/emailnotification/main.go index 20b5a1718a43315a189248b40627189cc9508410..d5723b7859b2932cbf44856d8b6a243baba639e0 100644 --- a/src/emailnotification/main.go +++ b/src/emailnotification/main.go @@ -14,7 +14,7 @@ import ( func main() { nc, err := service.ConnectToNats() if err != nil { - log.Fatalf("unable to connect to nats", err) + log.Fatalf("unable to connect to nats %v", err) } nc.Subscribe("confirmOrder.*", func(m *nats.Msg) { var ( diff --git a/src/highlanderticketing/db/db.go b/src/highlanderticketing/db/db.go index 184e5e664bbba5eb7ab8a36efc8d283038bd0885..3718292fe17b2dba3a2c169f522afbfddf9d5bd6 100644 --- a/src/highlanderticketing/db/db.go +++ b/src/highlanderticketing/db/db.go @@ -21,7 +21,7 @@ const ( DBUSER = "db_user" MATCHES = "col_matches" USERS = "col_users" - POOL_SIZE = 10 // Anzahl der Verbindungen im Pool + POOL_SIZE = 10000 // Anzahl der Verbindungen im Pool ) func GetMongoClient() (*mongo.Client, error) { @@ -43,3 +43,12 @@ func GetMongoClient() (*mongo.Client, error) { return clientInstance, clientInstanceError } +func CloseMongoClient() error { + if clientInstance != nil { + err := clientInstance.Disconnect(context.Background()) + if err != nil { + return err + } + } + return nil +} diff --git a/src/highlanderticketing/handler/match.go b/src/highlanderticketing/handler/match.go index 8dd6953a0d3a6dcf03fe4a1fd0388d154d98570a..fca1daa84d99f0968f15b9c8f7db7c4e3b9e839d 100644 --- a/src/highlanderticketing/handler/match.go +++ b/src/highlanderticketing/handler/match.go @@ -31,22 +31,6 @@ func CreateMatch(w http.ResponseWriter, r *http.Request) { sendJson(w, match) } -// noch testen schauen ob ich das brauche -/*func CreateMatches(w http.ResponseWriter, r *http.Request) { - var match *model.Match - match, err := getMatch(r) - if err != nil { - http.Error(w, err.Error(), http.StatusBadRequest) - return - } - if err := service.CreateMatch(match); err != nil { - log.Errorf("Error calling service CreateMatch: %v", err) - http.Error(w, err.Error(), http.StatusInternalServerError) - return - } - sendJson(w, match) -} -*/ func UpdateMatch(w http.ResponseWriter, r *http.Request) { if err := CheckAccessToken(w, r, true); err != nil { log.Errorf("Eror checking AccessToken: %v", err) diff --git a/src/highlanderticketing/handler/order.go b/src/highlanderticketing/handler/order.go index 862e81e0fbd4032c3b387b02bfe8ec635d89facc..0f6b304725a3d0fb07a2b8284601240af7476fd8 100644 --- a/src/highlanderticketing/handler/order.go +++ b/src/highlanderticketing/handler/order.go @@ -2,6 +2,7 @@ package handler import ( "encoding/json" + "fmt" "net/http" log "github.com/sirupsen/logrus" @@ -30,12 +31,21 @@ func AddMatchOrder(w http.ResponseWriter, r *http.Request) { log.Errorf("Failure loading bearer token %v", err) http.Error(w, err.Error(), http.StatusBadRequest) } + fmt.Println(reqToken, "reqToken") userOfOrder, err := service.GetUserInfo(reqToken) if err != nil { log.Errorf("Failure loading user Info %v", err) http.Error(w, err.Error(), http.StatusInternalServerError) } - order.User = userOfOrder + fmt.Println(userOfOrder, "userOfOrder") + internalUser, err := service.GetUserByEmail(userOfOrder.Email) + if err != nil { + log.Errorf("Failure loading internal user Info %v", err) + http.Error(w, err.Error(), http.StatusInternalServerError) + } + fmt.Println(internalUser, 2) + order.User = *internalUser + fmt.Println(order.User, 3) err = service.AddMatchOrder(id, order) if err != nil { log.Errorf("Failure adding order to match with ID %v: %v", id, err) @@ -71,7 +81,13 @@ func AddTravelOrder(w http.ResponseWriter, r *http.Request) { log.Errorf("Failure loading user Info %v", err) http.Error(w, err.Error(), http.StatusInternalServerError) } - order.User = userOfOrder + internalUser, err := service.GetUserByEmail(userOfOrder.Email) + if err != nil { + log.Errorf("Failure loading internal user Info %v", err) + http.Error(w, err.Error(), http.StatusInternalServerError) + } + order.User = *internalUser + err = service.AddTravelOrder(id, order) if err != nil { log.Errorf("Failure adding donation to campaign with ID %v: %v", id, err) diff --git a/src/highlanderticketing/main.go b/src/highlanderticketing/main.go index bfda4cb600288d57bbf5548d27ce4f3879fd70d5..d78ed7ccb7f51f18cfa39716735e289b78b362ee 100644 --- a/src/highlanderticketing/main.go +++ b/src/highlanderticketing/main.go @@ -1,7 +1,6 @@ package main import ( - "fmt" "net/http" "os" @@ -11,27 +10,21 @@ import ( log "github.com/sirupsen/logrus" "gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/db" "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" ) func main() { - service.DeleteAllUsers() + /*service.DeleteAllUsers() var userArray []model.User userArray, _ = service.GetAllUsers() - fmt.Println(userArray) /* - service.DeleteAllMatches() - api.GetMatchesOfApiToDb("https://api.openligadb.de/getmatchesbyteamid/16/5/0")*/ + fmt.Println(userArray) + service.DeleteAllMatches() + api.GetMatchesOfApiToDb("https://api.openligadb.de/getmatchesbyteamid/16/5/0")*/ if err := godotenv.Load(".env"); err != nil { log.Fatalf("Error loading .env file") } - _, err := db.GetMongoClient() - if err != nil { - log.Fatal(err) - } - var natsServer service.NatsServer uri := os.Getenv("NATS_URI") @@ -44,11 +37,6 @@ func main() { log.Fatal("Error establishing connection to NATS:", err) } - //fmt.Println("Connected to NATS at:", natsServer.Nc.ConnectedUrl()) - //var nr = strconv.Itoa(1) - //e := model.EmialContent{Name: "aa", AwayMatch: true, Location: "ss", Date: "aaa", Emailadress: "yannick.ege@web.de", OrderID: nr} - //natsServer.ConfirmOrder(&e) - log.Println("Starting Highlander Ticketing server") router := mux.NewRouter() router.HandleFunc("/register", handler.HandleRegister).Methods("GET") @@ -67,9 +55,19 @@ func main() { log.Fatal(err) } + err = db.CloseMongoClient() + if err != nil { + log.Fatal(err) + } + } func init() { + //init db + _, err := db.GetMongoClient() + if err != nil { + log.Fatal(err) + } // init logger log.SetFormatter(&log.TextFormatter{}) log.SetReportCaller(true) diff --git a/src/highlanderticketing/model/user.go b/src/highlanderticketing/model/user.go index 4b43fc87c599c81abb88050fce2ee23769a0d6ac..1583dceefa58fcf68079367ebfd0b5d40fd48803 100644 --- a/src/highlanderticketing/model/user.go +++ b/src/highlanderticketing/model/user.go @@ -3,9 +3,9 @@ package model import "go.mongodb.org/mongo-driver/bson/primitive" type User struct { - ID primitive.ObjectID `bson:"_id, omitempty"` + ID primitive.ObjectID `bson:"_id,omitempty"` + GoogleID string `json:"id,omitempty" bson:"google_id"` Email string `json:"email" bson:"email"` - GoogleID string `json:"id" bson:"google_id"` Name string `json:"name" bson:"name"` FamilyName string `json:"family_name" bson:"family_name"` IsAdmin bool `json:"is_admin" bson:"is_admin"` diff --git a/src/highlanderticketing/service/oauth.go b/src/highlanderticketing/service/oauth.go index 6bec726142460be521e24d29a06c119d738e0212..0e03d60859bc7bd90b522bbc24c29cfbe799bcd4 100644 --- a/src/highlanderticketing/service/oauth.go +++ b/src/highlanderticketing/service/oauth.go @@ -69,7 +69,6 @@ func GetUserInfo(accessToken string) (model.User, error) { if err != nil { return userInfo, err } - err = json.Unmarshal(body, &userInfo) if err != nil { return userInfo, err diff --git a/src/highlanderticketing/service/order.go b/src/highlanderticketing/service/order.go index bd8a876c287b8c140d4e70b723790f2a5244133b..8d97dba00b4ea8f11177e5f6dc57233ae47e7fad 100644 --- a/src/highlanderticketing/service/order.go +++ b/src/highlanderticketing/service/order.go @@ -23,6 +23,7 @@ func AddMatchOrder(matchID primitive.ObjectID, order *model.Order) error { if err != nil { return err } + collection := client.Database(db.DB).Collection(db.MATCHES) err = collection.FindOne(context.TODO(), filter).Decode(&matchToFind) @@ -59,6 +60,7 @@ func AddTravelOrder(matchID primitive.ObjectID, order *model.Order) error { if err != nil { return err } + collection := client.Database(db.DB).Collection(db.MATCHES) err = collection.FindOne(context.TODO(), filter).Decode(&matchToFind) diff --git a/src/highlanderticketing/service/travel.go b/src/highlanderticketing/service/travel.go deleted file mode 100644 index 196871888dba8cea6e770dac27d23af3acef4995..0000000000000000000000000000000000000000 --- a/src/highlanderticketing/service/travel.go +++ /dev/null @@ -1,5 +0,0 @@ -package service - -func CreateTravel() { - -} diff --git a/src/highlanderticketing/service/user.go b/src/highlanderticketing/service/user.go index d398fc74915b7ef07a9afa926eea607d64ec23ae..53c047faf49e2832465f9a03f566cb92c01522bd 100644 --- a/src/highlanderticketing/service/user.go +++ b/src/highlanderticketing/service/user.go @@ -33,13 +33,11 @@ func CreateUser(user *model.User) error { if err != nil { return err } - filter := bson.M{"email": user.Email} update := bson.M{ "$setOnInsert": bson.M{ "_id": user.ID, "email": user.Email, - "google_id": user.GoogleID, "name": user.Name, "family_name": user.FamilyName, "is_admin": user.IsAdmin, @@ -74,7 +72,6 @@ func UpdateUser(userID primitive.ObjectID, user *model.User) (*model.User, error updater := bson.D{primitive.E{Key: "$set", Value: bson.D{ primitive.E{Key: "email", Value: user.Email}, - primitive.E{Key: "google_id", Value: user.GoogleID}, primitive.E{Key: "name", Value: user.Name}, primitive.E{Key: "family_name", Value: user.FamilyName}, primitive.E{Key: "is_admin", Value: user.IsAdmin}, @@ -84,6 +81,7 @@ func UpdateUser(userID primitive.ObjectID, user *model.User) (*model.User, error if err != nil { return nil, err } + collection := client.Database(db.DB).Collection(db.MATCHES) updateResult, err := collection.UpdateOne(context.TODO(), filter, updater) @@ -142,6 +140,7 @@ func GetUserByID(userID primitive.ObjectID) (*model.User, error) { if err != nil { return &result, err } + collection := client.Database(db.DB).Collection(db.USERS) err = collection.FindOne(context.TODO(), filter).Decode(&result) @@ -158,6 +157,7 @@ func GetUserByEmail(email string) (*model.User, error) { if err != nil { return &result, err } + collection := client.Database(db.DB).Collection(db.USERS) err = collection.FindOne(context.TODO(), filter).Decode(&result) @@ -173,6 +173,7 @@ func DeleteUser(UserID primitive.ObjectID) error { if err != nil { return err } + collection := client.Database(db.DB).Collection(db.USERS) _, err = collection.DeleteOne(context.TODO(), filter) if err != nil { @@ -187,6 +188,7 @@ func DeleteAllUsers() error { if err != nil { return err } + collection := client.Database(db.DB).Collection(db.USERS) _, err = collection.DeleteMany(context.TODO(), selector) if err != nil {