feat: update some errorhandling #161
This commit is contained in:
@@ -24,17 +24,21 @@ import (
|
||||
func HandleSignInPage(db *sql.DB) http.HandlerFunc {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
user := utils.GetUserFromSession(db, r)
|
||||
if user == nil || !user.SessionValid {
|
||||
|
||||
if user == nil {
|
||||
userComp := UserInfoComp(nil)
|
||||
signIn := auth.SignInOrUpComp(true)
|
||||
template.Layout(signIn, userComp).Render(r.Context(), w)
|
||||
return
|
||||
err := template.Layout(signIn, userComp).Render(r.Context(), w)
|
||||
|
||||
if err != nil {
|
||||
utils.LogError("Failed to render sign in page", err)
|
||||
http.Error(w, "Internal Server Error", http.StatusInternalServerError)
|
||||
}
|
||||
|
||||
} else if !user.EmailVerified {
|
||||
utils.DoRedirect(w, r, "/auth/verify")
|
||||
return
|
||||
} else {
|
||||
utils.DoRedirect(w, r, "/")
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -42,17 +46,21 @@ func HandleSignInPage(db *sql.DB) http.HandlerFunc {
|
||||
func HandleSignUpPage(db *sql.DB) http.HandlerFunc {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
user := utils.GetUserFromSession(db, r)
|
||||
if user == nil || !user.SessionValid {
|
||||
|
||||
if user == nil {
|
||||
userComp := UserInfoComp(nil)
|
||||
signUpComp := auth.SignInOrUpComp(false)
|
||||
template.Layout(signUpComp, userComp).Render(r.Context(), w)
|
||||
return
|
||||
err := template.Layout(signUpComp, userComp).Render(r.Context(), w)
|
||||
|
||||
if err != nil {
|
||||
utils.LogError("Failed to render sign up page", err)
|
||||
http.Error(w, "Internal Server Error", http.StatusInternalServerError)
|
||||
}
|
||||
|
||||
} else if !user.EmailVerified {
|
||||
utils.DoRedirect(w, r, "/auth/verify")
|
||||
return
|
||||
} else {
|
||||
utils.DoRedirect(w, r, "/")
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -60,17 +68,18 @@ func HandleSignUpPage(db *sql.DB) http.HandlerFunc {
|
||||
func HandleSignUpVerifyPage(db *sql.DB) http.HandlerFunc {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
user := utils.GetUserFromSession(db, r)
|
||||
if user == nil || !user.SessionValid {
|
||||
if user == nil {
|
||||
utils.DoRedirect(w, r, "/auth/signin")
|
||||
return
|
||||
}
|
||||
if user.EmailVerified {
|
||||
} else if user.EmailVerified {
|
||||
utils.DoRedirect(w, r, "/")
|
||||
return
|
||||
} else {
|
||||
userComp := UserInfoComp(user)
|
||||
signIn := auth.VerifyComp()
|
||||
template.Layout(signIn, userComp).Render(r.Context(), w)
|
||||
err := template.Layout(signIn, userComp).Render(r.Context(), w)
|
||||
if err != nil {
|
||||
utils.LogError("Failed to render verify page", err)
|
||||
http.Error(w, "Internal Server Error", http.StatusInternalServerError)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -95,12 +104,15 @@ func HandleSignUpVerifyResponsePage(db *sql.DB) http.HandlerFunc {
|
||||
`, token)
|
||||
|
||||
if err != nil {
|
||||
utils.LogError("Could not update user", err)
|
||||
utils.LogError("Could not update user on verify response", err)
|
||||
http.Error(w, "Internal Server Error", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
i, err := result.RowsAffected()
|
||||
if err != nil {
|
||||
utils.LogError("Could not get rows affected", err)
|
||||
utils.LogError("Could not get rows affected on verify response", err)
|
||||
http.Error(w, "Internal Server Error", http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -170,8 +182,8 @@ func HandleSignUpComp(db *sql.DB) http.HandlerFunc {
|
||||
return
|
||||
}
|
||||
|
||||
auth.Error("Internal Server Error").Render(r.Context(), w)
|
||||
utils.LogError("Could not insert user", err)
|
||||
auth.Error("Internal Server Error").Render(r.Context(), w)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -249,7 +261,8 @@ func HandleSignOutComp(db *sql.DB) http.HandlerFunc {
|
||||
if user != nil {
|
||||
_, err := db.Exec("DELETE FROM session WHERE session_id = ?", user.SessionId)
|
||||
if err != nil {
|
||||
utils.LogError("Could not delete session%v", err)
|
||||
utils.LogError("Could not delete session", err)
|
||||
utils.TriggerToast(w, r, "error", "Internal Server Error")
|
||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
@@ -266,19 +279,19 @@ func HandleSignOutComp(db *sql.DB) http.HandlerFunc {
|
||||
}
|
||||
|
||||
http.SetCookie(w, &c)
|
||||
w.Header().Add("HX-Redirect", "/")
|
||||
utils.DoRedirect(w, r, "/")
|
||||
}
|
||||
}
|
||||
|
||||
func HandleVerifyResendComp(db *sql.DB) http.HandlerFunc {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
user := utils.GetUserFromSession(db, r)
|
||||
if user == nil || !user.SessionValid || user.EmailVerified {
|
||||
if user == nil || user.EmailVerified {
|
||||
utils.DoRedirect(w, r, "/auth/signin")
|
||||
return
|
||||
}
|
||||
|
||||
sendVerificationEmail(db, r, user.Id.String(), user.Email)
|
||||
go sendVerificationEmail(db, r, user.Id.String(), user.Email)
|
||||
|
||||
w.Write([]byte("<p class=\"mt-8\">Verification email sent</p>"))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user