in sobject/metadata.go [82:113]
func (md *metadata) response(request *http.Request) (MetadataValue, error) {
response, err := md.session.Client().Do(request)
if err != nil {
return MetadataValue{}, err
}
decoder := json.NewDecoder(response.Body)
defer response.Body.Close()
if response.StatusCode != http.StatusOK {
var respErrs []sfdc.Error
err = decoder.Decode(&respErrs)
var errMsg error
if err == nil {
for _, respErr := range respErrs {
errMsg = fmt.Errorf("metadata response err: %s: %s", respErr.ErrorCode, respErr.Message)
}
} else {
errMsg = fmt.Errorf("metadata response err: %d %s", response.StatusCode, response.Status)
}
return MetadataValue{}, errMsg
}
var value MetadataValue
err = decoder.Decode(&value)
if err != nil {
return MetadataValue{}, err
}
return value, nil
}