forked from mirror/client_golang
Merge pull request #1 from matttproud-soundcloud/feature/contrib/response-delegate
Include Daniel's ResponseWriter delegate type.
This commit is contained in:
commit
e1bfb0c101
|
@ -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}
|
||||||
|
}
|
Loading…
Reference in New Issue