code: func (c *Client) magicRequestDecoder(method, path string, body io.Reader, v interface{}) error {
  	req, err := c.NewRequest(method, path, body)
  	if err != nil {
  		return err
  	}
  
  	debug("Request: %+v \n", req)
  	res, err := c.Do(req, v)
  	if res != nil {
  		defer res.Body.Close()
  	}
  	debug("Response: %+v \n", res)
  	if err != nil {
  		return err
  	}
  	return err
  }
docs: // magicRequestDecoder performs a request on an endpoint, and decodes the response into the passed in Type