diff --git a/src/redux/helpers/api/tools.js b/src/redux/helpers/api/tools.js index 8c4b63d65..6d444333d 100644 --- a/src/redux/helpers/api/tools.js +++ b/src/redux/helpers/api/tools.js @@ -47,6 +47,19 @@ const createFormData = body => { return data; }; +const encodeBody = (body, method, encodeAsMultipart) => { + if (method.toUpperCase() !== 'POST') { + return undefined; + } + + if (encodeAsMultipart) { + return body ? createFormData(body) : undefined; + } else { + // otherwise we encode in JSON + return JSON.stringify(body || []); + } +}; + export const createRequest = ( endpoint, query = {}, @@ -58,9 +71,7 @@ export const createRequest = ( fetch(getUrl(assembleEndpoint(endpoint, query)), { method, headers, - body: body - ? uploadFiles ? createFormData(body) : JSON.stringify(body) - : undefined + body: encodeBody(body, method, uploadFiles) }); export const getHeaders = (headers, accessToken, skipContentType) => {