From 49005d7768bc731bd02a9d4f21b63aef3020ef43 Mon Sep 17 00:00:00 2001 From: cdricms <36056008+cdricms@users.noreply.github.com> Date: Wed, 15 Jan 2025 15:28:14 +0100 Subject: [PATCH] Added JSON ERROR --- backend/auth.go | 43 +++++++++++++++++++++++++++++++++++-------- backend/main.go | 9 --------- 2 files changed, 35 insertions(+), 17 deletions(-) diff --git a/backend/auth.go b/backend/auth.go index 6f8cca1..7701725 100644 --- a/backend/auth.go +++ b/backend/auth.go @@ -5,7 +5,6 @@ import ( "encoding/json" "fmt" "io" - "log" "net/http" "strings" "time" @@ -27,21 +26,37 @@ type Claims struct { func HandleLogin(w http.ResponseWriter, r *http.Request) { if r.Method != http.MethodPost { - log.Fatal("Not post method") + JSONError{ + Status: Error, + Message: "Method is not allowed", + }.Respond(w, http.StatusMethodNotAllowed) + return } if r.Body == nil { - log.Fatal("No body") + JSONError{ + Status: Error, + Message: "No body has been provided.", + }.Respond(w, http.StatusNoContent) + return } body, err := io.ReadAll(r.Body) if err != nil { - log.Fatal(err) + JSONError{ + Status: Error, + Message: err.Error(), + }.Respond(w, http.StatusNoContent) + return } var login LoginInformation err = json.Unmarshal(body, &login) if err != nil { - log.Fatal(err) + JSONError{ + Status: Error, + Message: err.Error(), + }.Respond(w, http.StatusNoContent) + return } var user User @@ -52,7 +67,11 @@ func HandleLogin(w http.ResponseWriter, r *http.Request) { Scan(context.Background()) if err != nil { - log.Fatal(err) + JSONError{ + Status: Error, + Message: err.Error(), + }.Respond(w, http.StatusNoContent) + return } claims := Claims{ @@ -68,10 +87,18 @@ func HandleLogin(w http.ResponseWriter, r *http.Request) { token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims) signed, err := token.SignedString([]byte("hello")) if err != nil { - log.Fatal(err) + JSONError{ + Status: Error, + Message: err.Error(), + }.Respond(w, http.StatusNoContent) + return } - fmt.Println(signed) + JSONSuccess{ + Status: Success, + Message: "JWT Created", + Data: map[string]string{"jwt": signed}, + }.Respond(w, http.StatusCreated) } func AuthJWT(next http.Handler) http.Handler { diff --git a/backend/main.go b/backend/main.go index d33bf7e..fbd9c7d 100644 --- a/backend/main.go +++ b/backend/main.go @@ -32,14 +32,6 @@ func (dsn *DSN) ToString() string { return fmt.Sprintf("postgres://%s:%s@%s:%s/%s?sslmode=disable", dsn.User, dsn.Password, dsn.Hostname, dsn.Port, dsn.DBName) } -func er(w http.ResponseWriter, r *http.Request) { - _ = r - JSONError{ - Status: Error, - Message: "Nope", - }.Respond(w, http.StatusUnauthorized) -} - func handlerCreateUser(w http.ResponseWriter, r *http.Request) { if r.Method != http.MethodPost { @@ -91,7 +83,6 @@ func main() { "/": {handler, nil}, "/users/login": {HandleLogin, nil}, "/users/new": {handlerCreateUser, AuthJWT}, - "/error": {er, nil}, }) fmt.Printf("Serving on port %s\n", port)