refactor: shorten response writer code

This commit is contained in:
Henrique Dias
2024-07-22 22:28:56 +02:00
parent 947b163ea7
commit f6a0707fe6
2 changed files with 9 additions and 28 deletions
+9 -1
View File
@@ -106,7 +106,7 @@ func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
} }
if r.Method == "HEAD" { if r.Method == "HEAD" {
w = newResponseWriterNoBody(w) w = responseWriterNoBody{w}
} }
// Excerpt from RFC4918, section 9.4: // Excerpt from RFC4918, section 9.4:
@@ -130,3 +130,11 @@ func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
// Runs the WebDAV. // Runs the WebDAV.
user.ServeHTTP(w, r) user.ServeHTTP(w, r)
} }
type responseWriterNoBody struct {
http.ResponseWriter
}
func (w responseWriterNoBody) Write(data []byte) (int, error) {
return 0, nil
}
-27
View File
@@ -1,27 +0,0 @@
package lib
import "net/http"
var _ http.ResponseWriter = responseWriterNoBody{}
// responseWriterNoBody is a wrapper used to suppress the body of the response
// to a request. Mainly used for HEAD requests.
type responseWriterNoBody struct {
http.ResponseWriter
}
// newResponseWriterNoBody creates a new responseWriterNoBody.
func newResponseWriterNoBody(w http.ResponseWriter) *responseWriterNoBody {
return &responseWriterNoBody{w}
}
// Write suppress the body.
func (w responseWriterNoBody) Write(data []byte) (int, error) {
return 0, nil
}
// WriteHeader writes the header to the http.ResponseWriter.
func (w responseWriterNoBody) WriteHeader(statusCode int) {
w.Header().Del("Content-Length")
w.ResponseWriter.WriteHeader(statusCode)
}