Skip to content
Snippets Groups Projects

Topic/default/basic method impl

Merged Frank Bessou requested to merge topic/default/basic-method-impl into branch/default
1 file
+ 13
1
Compare changes
  • Side-by-side
  • Inline
@@ -136,9 +136,34 @@ export function createDataProvider<S extends Schema>(
return { data: [entity] };
},
getManyReference: (_resource, _params) => Promise.reject("Not implemented"),
update: (_resource, _params) => Promise.reject("Not implemented"),
update: async (resource, { data, id }) => {
// FIXME update relations
const attributesUpdates: string[] = [];
Object.entries(data).forEach(([key, value]) => {
if (key in schema.etypes[resource]) {
attributesUpdates.push(`X ${key} ${JSON.stringify(value)}`);
}
});
await rqlClient.queryRows(`
SET ${attributesUpdates.join(", ")} WHERE X is ${resource}, X eid ${id}
`);
return Promise.resolve({ data: { ...data, id } });
},
updateMany: (_resource, _params) => Promise.reject("Not implemented"),
create: (_resource, _params) => Promise.reject("Not implemented"),
create: async (resource, { data }) => {
// FIXME create relations
const attributesUpdates: string[] = [];
Object.entries(data).forEach(([key, value]) => {
if (key in schema.etypes[resource]) {
attributesUpdates.push(`X ${key} ${JSON.stringify(value)}`);
}
});
const result = await rqlClient.queryRows(`
INSERT ${resource} X: ${attributesUpdates.join(", ")}
`);
const eid = result[0][0];
return Promise.resolve({ data: { ...data, id: eid } });
},
delete: (_resource, _params) => Promise.reject("Not implemented"),
deleteMany: (_resource, _params) => Promise.reject("Not implemented"),
};
Loading