-
Notifications
You must be signed in to change notification settings - Fork 23
Open
Description
Hello
Am using aor-loopback to connect with my API.
ON trying to create image upload capability I used the following aor guide to create a wrapper on aor-loopback
Here is my wrapper code.
const fileUploadRESTWrapper = requestHandler => (type, resource, params) => {
if (type === 'UPDATE' && resource === 'tales') {
if (params.data.faceBookImage && params.data.faceBookImage.length) {
let form = new FormData()
form.append('file', params.data.faceBookImage[0]);
delete params.data.faceBookImage
form.append('model', JSON.stringify(params.data))
return requestHandler(type, resource, {
...params,
data: form
},
)
}
}
return requestHandler(type, resource, params);
};
export default fileUploadRESTWrapper;
I encountered some issues. After looking through the aor-loopback source code I found that
case _types.UPDATE:
url = apiUrl + '/' + resource + '/' + params.id;
options.method = 'PUT';
options.body = JSON.stringify(params.data);
break;
aor-loopback is JSON.stringifying the entire response body. Stringifying is removing the image from the FormData object.
Suggestions: It would be great if you could also export the fetchJson method from the package. Someone like me could then create a case in the wrapper above.
url = apiUrl + '/' + resource + '/' + params.id;
options.method = 'PUT';
options.body = params.data
fetchJson(url, options)
This should solve a number of other use cases including create etc.
Above is just a suggestion and you may choose any other idea to account for the image upload use case as well.
Thanks and regards
Metadata
Metadata
Assignees
Labels
No labels