feat: update some errorhandling #161

This commit is contained in:
2024-09-10 12:13:10 +02:00
parent 37c3b2a780
commit 80ab17276e
7 changed files with 99 additions and 45 deletions

View File

@@ -2,6 +2,7 @@ package utils
import (
"database/sql"
"fmt"
"log/slog"
"me-fit/types"
"net/http"
@@ -35,9 +36,16 @@ func LogErrorMsg(message string) {
errorMetric.Inc()
}
func TriggerToast(w http.ResponseWriter, r *http.Request, class string, message string) {
if isHtmx(r) {
w.Header().Set("HX-Trigger", fmt.Sprintf(`{"toast": "%v|%v"}`, class, message))
} else {
LogErrorMsg("Trying to trigger toast in non-HTMX request")
}
}
func DoRedirect(w http.ResponseWriter, r *http.Request, url string) {
isHtmx := r.Header.Get("HX-Request") == "true"
if isHtmx {
if isHtmx(r) {
w.Header().Add("HX-Redirect", url)
} else {
http.Redirect(w, r, url, http.StatusSeeOther)
@@ -75,12 +83,11 @@ func GetUserFromSession(db *sql.DB, r *http.Request) *types.User {
}
if createdAt.Add(time.Duration(8 * time.Hour)).Before(time.Now()) {
user.SessionValid = false
return nil
} else {
user.SessionValid = true
return &user
}
return &user
}
func getSessionID(r *http.Request) string {
@@ -91,3 +98,7 @@ func getSessionID(r *http.Request) string {
}
return ""
}
func isHtmx(r *http.Request) bool {
return r.Header.Get("HX-Request") == "true"
}