package middleware import "net/http" // statusWriter is a [http.ResponseWriter] that captures the status code for logging. type statusWriter struct { http.ResponseWriter status int } func newStatusWriter(w http.ResponseWriter) *statusWriter { return &statusWriter{ResponseWriter: w} } func (w *statusWriter) Write(p []byte) (int, error) { if w.status == 0 { w.status = http.StatusOK } return w.ResponseWriter.Write(p) } func (w *statusWriter) WriteHeader(statusCode int) { w.status = statusCode w.ResponseWriter.WriteHeader(statusCode) } func (w *statusWriter) Status() int { return w.status }