client_golang/contributor/responsewriter_delegator.go

37 lines
859 B
Go

// 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}
}