func()

in sobject/query.go [125:157]


func (q *query) queryResponse(request *http.Request) (*sfdc.Record, error) {
	response, err := q.session.Client().Do(request)

	if err != nil {
		return nil, err
	}

	decoder := json.NewDecoder(response.Body)
	defer response.Body.Close()

	if response.StatusCode != http.StatusOK {
		var queryErrs []sfdc.Error
		err = decoder.Decode(&queryErrs)
		var errMsg error
		if err == nil {
			for _, queryErr := range queryErrs {
				errMsg = fmt.Errorf("insert response err: %s: %s", queryErr.ErrorCode, queryErr.Message)
			}
		} else {
			errMsg = fmt.Errorf("insert response err: %d %s", response.StatusCode, response.Status)
		}

		return nil, errMsg
	}

	var record sfdc.Record
	err = decoder.Decode(&record)
	if err != nil {
		return nil, err
	}

	return &record, nil
}