in sobject/collections/collections.go [126:168]
func (c *collection) send(session session.ServiceFormatter, value interface{}) error {
collectionURL := session.ServiceURL() + c.endpoint
if c.values != nil {
collectionURL += "?" + c.values.Encode()
}
request, err := http.NewRequest(c.method, collectionURL, c.body)
if err != nil {
return err
}
request.Header.Add("Accept", "application/json")
if c.contentType != "" {
request.Header.Add("Content-Type", c.contentType)
}
session.AuthorizationHeader(request)
response, err := session.Client().Do(request)
if err != nil {
return err
}
decoder := json.NewDecoder(response.Body)
defer response.Body.Close()
if response.StatusCode != http.StatusOK {
var insertErrs []sfdc.Error
err = decoder.Decode(&insertErrs)
var errMsg error
if err == nil {
for _, insertErr := range insertErrs {
errMsg = fmt.Errorf("insert response err: %s: %s", insertErr.ErrorCode, insertErr.Message)
}
} else {
errMsg = fmt.Errorf("insert response err: %d %s", response.StatusCode, response.Status)
}
return errMsg
}
err = decoder.Decode(value)
if err != nil {
return err
}
return nil
}