Include Daniel's ResponseWriter delegate type.

This commit is contained in:
Matt T. Proud 2013-01-30 20:49:41 +01:00
parent b0dbdfcf11
commit 13c269c19c
1 changed files with 38 additions and 0 deletions

View File

@ -0,0 +1,38 @@
/*
Copyright (c) 2013, Matt T. Proud
All rights reserved.
Use of this source code is governed by a BSD-style license that can be found in
the LICENSE file.
*/
package contributor
import (
"net/http"
"strconv"
)
const (
unknownStatusCode = "unknown"
)
// ResponseWriterDelegator is a means of wrapping http.ResponseWriter to divine
// the response code from a given answer, especially in systems where the
// response is treated as a blackbox.
type ResponseWriterDelegator struct {
http.ResponseWriter
Status *string
}
func (r ResponseWriterDelegator) WriteHeader(code int) {
*r.Status = strconv.Itoa(code)
r.ResponseWriter.WriteHeader(code)
}
func NewResponseWriterDelegator(delegate http.ResponseWriter) ResponseWriterDelegator {
defaultStatusCode := unknownStatusCode
return ResponseWriterDelegator{delegate, &defaultStatusCode}
}