Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug: payload function in composite.go should set httpHeaders field to map[string]string instead of map[string][]string #56

Open
sfc-gh-ntrinh opened this issue Aug 26, 2021 · 0 comments

Comments

@sfc-gh-ntrinh
Copy link

sfc-gh-ntrinh commented Aug 26, 2021

I was using this for a project and noticed that Salesforce expects a map[string]string instead of map[string][]string for the httpHeaders field in composite subrequests.

https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_composite_record_manipulation.htm

When I use

            "httpHeaders": {
                "Some-Header": ["defg"]
            }

I get the error

[
    {
        "message": "Invalid type provided for value in 'httpHeaders'",
        "errorCode": "JSON_PARSER_ERROR"
    }
]

and the request works when I use

            "httpHeaders": {
                "Some-Header": "defg"
            }
nantrinh pushed a commit to nantrinh/go-sfdc that referenced this issue Sep 9, 2021
…stead of map[string][]string

Fixes Issue g8rswimmer#56

A drawback of this fix is, if the user passes in multiple values for a key, Salesforce would still return an error.

Another possible fix is to change the type of Subrequester.HTTPHeaders from http.Header to map[string]string but we probably don't want to do that because callers may expect to be able to pass in a http.Header type for that field.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant