Skip to content

Instantly share code, notes, and snippets.

@arackaf
Created January 20, 2019 01:06
Show Gist options
  • Save arackaf/58cd05f7ad9ab9cdd5304fe78e4b6a99 to your computer and use it in GitHub Desktop.
Save arackaf/58cd05f7ad9ab9cdd5304fe78e4b6a99 to your computer and use it in GitHub Desktop.
async function syncResultsFor({ request, response }, name, transform = item => item) {
let createNameSingle = `create${name}`;
if (response && response.data && response.data[createNameSingle] && response.data[createNameSingle][name]) {
syncItem(transform(response.data[createNameSingle][name]), `${name.toLowerCase()}s`);
}
let updateNameSingle = `update${name}`;
if (response && response.data && response.data[updateNameSingle] && response.data[updateNameSingle][name]) {
syncItem(transform(response.data[updateNameSingle][name]), `${name.toLowerCase()}s`);
}
let updateNamePlural = `update${name}s`;
if (response && response.data && response.data[updateNamePlural] && response.data[updateNamePlural][name + "s"]) {
response.data[updateNamePlural][name + "s"].forEach(item => syncItem(transform(item), `${name.toLowerCase()}s`));
}
let deleteNameSingle = `delete${name}`;
if (response && response.data && response.data[deleteNameSingle]) {
let reqJson = await request.json();
deleteItem(reqJson.variables._id, name.toLowerCase() + "s");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment