-
Notifications
You must be signed in to change notification settings - Fork 22
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
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels