Merge pull request 'Added WithMaxBytes middleware' (#2) from dev into main

This commit was merged in pull request #2.
This commit is contained in:
2026-07-20 20:14:50 +02:00
4 changed files with 15 additions and 3 deletions
+1 -1
View File
@@ -53,7 +53,7 @@ func run(serviceName string, serviceVersion string) error {
defer cancel() defer cancel()
if err := shutdownTelemetry(shutdownCtx); err != nil { if err := shutdownTelemetry(shutdownCtx); err != nil {
slog.Error("Failed to shutdown telemetry", err) slog.Error("Failed to shutdown telemetry", slog.Any("error", err))
} }
}() }()
+13
View File
@@ -0,0 +1,13 @@
package middleware
import "net/http"
func WithMaxBytes(limit int64) func(http.Handler) http.Handler {
return func(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
r.Body = http.MaxBytesReader(w, r.Body, limit)
next.ServeHTTP(w, r)
})
}
}
-2
View File
@@ -14,8 +14,6 @@ type CreateListPayload struct {
func DecodeCreateList(r *http.Request) (CreateListPayload, error) { func DecodeCreateList(r *http.Request) (CreateListPayload, error) {
var payload CreateListPayload var payload CreateListPayload
r.Body = http.MaxBytesReader(nil, r.Body, 1024*64)
decoder := json.NewDecoder(r.Body) decoder := json.NewDecoder(r.Body)
decoder.DisallowUnknownFields() decoder.DisallowUnknownFields()
+1
View File
@@ -28,6 +28,7 @@ func NewMux(cfg Config) http.Handler {
mux.HandleFunc("POST /lists", listHandler.CreateList) mux.HandleFunc("POST /lists", listHandler.CreateList)
var httpHandler http.Handler = mux var httpHandler http.Handler = mux
httpHandler = middleware.WithMaxBytes(1024 * 64)(httpHandler)
httpHandler = middleware.WithTelemetry(httpHandler) httpHandler = middleware.WithTelemetry(httpHandler)
return httpHandler return httpHandler