@@ -7,25 +7,25 @@ import (
77
88 "github.com/CodeChefVIT/cookoff-backend/internal/db"
99 "github.com/CodeChefVIT/cookoff-backend/internal/helpers/auth"
10- helpers "github.com/CodeChefVIT/cookoff-backend/internal/helpers/auth"
1110 "github.com/CodeChefVIT/cookoff-backend/internal/helpers/database"
1211 httphelpers "github.com/CodeChefVIT/cookoff-backend/internal/helpers/http"
1312 logger "github.com/CodeChefVIT/cookoff-backend/internal/helpers/logging"
1413 "github.com/CodeChefVIT/cookoff-backend/internal/helpers/validator"
1514 "github.com/google/uuid"
15+ "github.com/jackc/pgx/v5"
1616 "github.com/jackc/pgx/v5/pgtype"
1717 "golang.org/x/crypto/bcrypt"
1818)
1919
2020type LoginRequest struct {
21- Email string `json:"email" validate:"required"`
21+ Email string `json:"email" validate:"required,email "`
2222 Password string `json:"password" validate:"required"`
2323}
2424
2525type SignupRequest struct {
26- Email string `json:"email" validate:"required"`
27- Name string `json:"name" validate:"required"`
28- RegNo string `json:"reg_no" validate:"required"`
26+ Email string `json:"email" validate:"required"`
27+ Name string `json:"name" validate:"required"`
28+ RegNo string `json:"reg_no" validate:"required"`
2929 Key string `json:"fuck_you" validate:"required"`
3030}
3131
@@ -93,32 +93,32 @@ func LoginHandler(w http.ResponseWriter, r *http.Request) {
9393
9494 user , err := database .Queries .GetUserByEmail (r .Context (), req .Email )
9595 if err != nil {
96- logger .Errof ("User not found or invalid credentials for email: %s, err: %v" , req .Email , err )
97- httphelpers .WriteError (w , http .StatusUnauthorized , "invalid credentials" )
96+ if errors .Is (err , pgx .ErrNoRows ) {
97+ httphelpers .WriteError (w , http .StatusNotFound , "user not found" )
98+ return
99+ }
100+ logger .Infof ("received error from database %v" , err .Error ())
101+ httphelpers .WriteError (w , http .StatusInternalServerError , "some error occurred" )
98102 return
99103 }
100104
101105 if err := bcrypt .CompareHashAndPassword ([]byte (user .Password ), []byte (req .Password )); err != nil {
102106 if errors .Is (err , bcrypt .ErrMismatchedHashAndPassword ) {
103- httphelpers .WriteJSON (w , http .StatusBadRequest , map [string ]string {
104- "message" : "invalid password" ,
105- })
107+ httphelpers .WriteError (w , http .StatusConflict , "invalid password" )
106108 return
107109 }
108110 httphelpers .WriteError (w , http .StatusInternalServerError , err .Error ())
109111 }
110112
111- accessToken , err := helpers .GenerateJWT (& user , false )
113+ accessToken , err := auth .GenerateJWT (& user , false )
112114 if err != nil {
113- logger .Errof ("Failed to generate access token for user: %s, err: %v" , user .Email , err )
114- httphelpers .WriteError (w , http .StatusUnauthorized , "failed to generate token" )
115+ httphelpers .WriteError (w , http .StatusInternalServerError , "failed to generate token" )
115116 return
116117 }
117118
118- refreshToken , err := helpers .GenerateJWT (& user , true )
119+ refreshToken , err := auth .GenerateJWT (& user , true )
119120 if err != nil {
120- logger .Errof ("Failed to generate refresh token for user: %s, err: %v" , user .Email , err )
121- httphelpers .WriteError (w , http .StatusUnauthorized , "failed to generate token" )
121+ httphelpers .WriteError (w , http .StatusInternalServerError , "failed to generate token" )
122122 return
123123 }
124124
@@ -150,6 +150,6 @@ func LoginHandler(w http.ResponseWriter, r *http.Request) {
150150
151151 httphelpers .WriteJSON (w , http .StatusOK , map [string ]any {
152152 "message" : "Login successful" ,
153- "user " : data ,
153+ "data " : data ,
154154 })
155155}
0 commit comments