diff --git a/src/highlanderticketing/handler/oauth.go b/src/highlanderticketing/handler/oauth.go index 90fd848b3d5acd0756cf6eed3d470437755b413a..dbbe02710c74af5d33dd50c31a81558b0f87583e 100644 --- a/src/highlanderticketing/handler/oauth.go +++ b/src/highlanderticketing/handler/oauth.go @@ -3,6 +3,7 @@ package handler import ( "context" "fmt" + "io" "net/http" log "github.com/sirupsen/logrus" @@ -32,10 +33,17 @@ func HandleCallbackRegister(w http.ResponseWriter, r *http.Request) { http.Error(w, "Fehler beim Authentifizieren", http.StatusInternalServerError) return } - service.Register(token.AccessToken) + err = service.Register(token.AccessToken) + if err != nil { + fmt.Println(err) + io.WriteString(w, `user besteht bereits`) + } else { + sendJson(w, "user erfolgreich angelegt") + } + } -func HandleCallback(w http.ResponseWriter, r *http.Request) { +func HandleCallbackLogin(w http.ResponseWriter, r *http.Request) { oauthConfig := config.GetOAuthConfigLogin() code := r.URL.Query().Get("code") token, err := oauthConfig.Exchange(context.Background(), code) @@ -44,6 +52,18 @@ func HandleCallback(w http.ResponseWriter, r *http.Request) { http.Error(w, "Fehler beim Authentifizieren", http.StatusInternalServerError) return } + // den teil in eine routine packen + user, err := service.GetUserInfo(token.AccessToken) + if err != nil { + sendJson(w, err) + return + } + _, errUser := service.GetUserByEmail(user.Email) + if errUser != nil { + sendJson(w, err) + sendJson(w, "user nicht registriert") + return + } sendJson(w, token.AccessToken) } @@ -80,6 +100,6 @@ func checkAdmin(token string) error { if user.IsAdmin { return nil } else { - return fmt.Errorf("User has not Adminrights") + return fmt.Errorf("User has not adminrights") } } diff --git a/src/highlanderticketing/main.go b/src/highlanderticketing/main.go index 6b9a4ea94576ae2449320354bc15b1703a917ebf..bfda4cb600288d57bbf5548d27ce4f3879fd70d5 100644 --- a/src/highlanderticketing/main.go +++ b/src/highlanderticketing/main.go @@ -4,7 +4,6 @@ import ( "fmt" "net/http" "os" - "strconv" "github.com/gorilla/mux" "github.com/joho/godotenv" @@ -45,17 +44,17 @@ 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) + //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") - router.HandleFunc("/callback/register", handler.HandleCallback).Methods("GET") + router.HandleFunc("/callback/register", handler.HandleCallbackRegister).Methods("GET") router.HandleFunc("/login", handler.HandleLogin).Methods("GET") - router.HandleFunc("/callback/login", handler.HandleCallback).Methods("GET") + router.HandleFunc("/callback/login", handler.HandleCallbackLogin).Methods("GET") router.HandleFunc("/health", handler.Health).Methods("GET") router.HandleFunc("/match", handler.CreateMatch).Methods("POST") router.HandleFunc("/matches", handler.GetAllMatches).Methods("GET") diff --git a/src/highlanderticketing/service/register.go b/src/highlanderticketing/service/register.go index 42eff89571d90a685407ec8a1afa81dd6266d740..38a23ed9bf68883b67f646f1035d2b03f14b6b4a 100644 --- a/src/highlanderticketing/service/register.go +++ b/src/highlanderticketing/service/register.go @@ -1,5 +1,11 @@ package service +import ( + "fmt" + + "gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/model" +) + func Register(accessToken string) error { user, err := GetUserInfo(accessToken) if err != nil { @@ -9,5 +15,8 @@ func Register(accessToken string) error { if err1 != nil { return err1 } + var userArray []model.User + userArray, _ = GetAllUsers() + fmt.Println(userArray) return nil }