Merge pull request #1 from matttproud-soundcloud/feature/contrib/response-delegate

Include Daniel's ResponseWriter delegate type.
This commit is contained in:
juliusv 2013-01-31 06:36:22 -08:00
commit e1bfb0c101
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}
}