9 type transport struct {
11 transport http.RoundTripper
14 func (t *transport) RoundTrip(req *http.Request) (*http.Response, error) {
15 if IsDebugOrHigher() {
16 reqData, err := httputil.DumpRequestOut(req, true)
18 log.Printf("[DEBUG] "+logReqMsg, t.name, string(reqData))
20 log.Printf("[ERROR] %s API Request error: %#v", t.name, err)
24 resp, err := t.transport.RoundTrip(req)
29 if IsDebugOrHigher() {
30 respData, err := httputil.DumpResponse(resp, true)
32 log.Printf("[DEBUG] "+logRespMsg, t.name, string(respData))
34 log.Printf("[ERROR] %s API Response error: %#v", t.name, err)
41 func NewTransport(name string, t http.RoundTripper) *transport {
42 return &transport{name, t}
45 const logReqMsg = `%s API Request Details:
46 ---[ REQUEST ]---------------------------------------
48 -----------------------------------------------------`
50 const logRespMsg = `%s API Response Details:
51 ---[ RESPONSE ]--------------------------------------
53 -----------------------------------------------------`