package mw import ( "net/http" "code.nochebuena.dev/einherjar/core/logz" ) // RequestID injects a unique request ID into the context (via [logz.WithRequestID]) // and sets the X-Request-ID response header. // generator is called once per request — pass uuid.NewString or a custom function. func RequestID(generator func() string) func(http.Handler) http.Handler { return func(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { id := generator() ctx := logz.WithRequestID(r.Context(), id) r = r.WithContext(ctx) w.Header().Set("X-Request-ID", id) next.ServeHTTP(w, r) }) } }