in soql/response.go [14:59]
func newQueryResponseJSON(jsonMap map[string]interface{}) (queryResponse, error) {
response := queryResponse{}
if d, has := jsonMap["done"]; has {
if done, ok := d.(bool); ok {
response.Done = done
} else {
return queryResponse{}, errors.New("query response: done is not a bool")
}
} else {
return queryResponse{}, errors.New("query response: done is not present")
}
if ts, has := jsonMap["totalSize"]; has {
if totalSize, ok := ts.(float64); ok {
response.TotalSize = int(totalSize)
} else {
return queryResponse{}, errors.New("query response: totalSize is not a number")
}
} else {
return queryResponse{}, errors.New("query response: totalSize is not present")
}
if nru, has := jsonMap["nextRecordsUrl"]; has {
if nextRecordsURL, ok := nru.(string); ok {
response.NextRecordsURL = nextRecordsURL
} else {
return queryResponse{}, errors.New("query response: nextRecordsUrl is not a string")
}
}
if r, has := jsonMap["records"]; has {
if array, ok := r.([]interface{}); ok {
records := make([]map[string]interface{}, len(array))
for idx, element := range array {
if rec, ok := element.(map[string]interface{}); ok {
records[idx] = rec
} else {
return queryResponse{}, errors.New("query response: record element is not a map")
}
}
response.Records = records
} else {
return queryResponse{}, errors.New("query response: records is not an array")
}
} else {
return queryResponse{}, errors.New("query response: records is not present")
}
return response, nil
}