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