in composite/composite.go [149:174]
func (r *Resource) payload(allOrNone bool, requesters []Subrequester) (*bytes.Reader, error) {
subRequests := make([]interface{}, len(requesters))
for idx, requester := range requesters {
subRequest := map[string]interface{}{
"url": requester.URL(),
"referenceId": requester.ReferenceID(),
"method": requester.Method(),
}
if requester.Body() != nil {
subRequest["body"] = requester.Body()
}
if requester.HTTPHeaders() != nil {
subRequest["httpHeaders"] = requester.HTTPHeaders()
}
subRequests[idx] = subRequest
}
payload := map[string]interface{}{
"allOrNone": allOrNone,
"compositeRequest": subRequests,
}
jsonBody, err := json.Marshal(payload)
if err != nil {
return nil, err
}
return bytes.NewReader(jsonBody), nil
}