feat(account): #49 account page
All checks were successful
Build Docker Image / Build-Docker-Image (push) Successful in 4m47s
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 5m31s

This commit was merged in pull request #59.
This commit is contained in:
2025-05-06 23:02:55 +02:00
parent b35d638070
commit a58e8c6694
26 changed files with 634 additions and 404 deletions

View File

@@ -59,7 +59,7 @@ func CrossSiteRequestForgery(auth service.Auth) func(http.Handler) http.Handler
if session == nil || csrfToken == "" || !auth.IsCsrfTokenValid(csrfToken, session.Id) {
log.Info("CSRF-Token not correct")
if r.Header.Get("HX-Request") == "true" {
utils.TriggerToast(w, r, "error", "CSRF-Token not correct", http.StatusBadRequest)
utils.TriggerToastWithStatus(w, r, "error", "CSRF-Token not correct", http.StatusBadRequest)
} else {
http.Error(w, "CSRF-Token not correct", http.StatusBadRequest)
}

View File

@@ -0,0 +1,38 @@
package middleware
import (
"compress/gzip"
"io"
"net/http"
"strings"
"spend-sparrow/log"
)
type gzipResponseWriter struct {
io.Writer
http.ResponseWriter
}
func (w gzipResponseWriter) Write(b []byte) (int, error) {
return w.Writer.Write(b)
}
func Gzip(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if !strings.Contains(r.Header.Get("Accept-Encoding"), "gzip") {
next.ServeHTTP(w, r)
return
}
w.Header().Set("Content-Encoding", "gzip")
gz := gzip.NewWriter(w)
gzr := gzipResponseWriter{Writer: gz, ResponseWriter: w}
next.ServeHTTP(gzr, r)
err := gz.Close()
if err != nil {
log.Error("Gzip: could not close Writer: %v", err)
}
})
}

View File

@@ -2,10 +2,11 @@ package middleware
import "net/http"
// Chain list of handlers together
func Wrapper(next http.Handler, handlers ...func(http.Handler) http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
lastHandler := next
for i := len(handlers) - 1; i >= 0; i-- {
for i := 0; i < len(handlers); i++ {
lastHandler = handlers[i](lastHandler)
}
lastHandler.ServeHTTP(w, r)