diff --git a/packages/ra-cubicweb/src/index.ts b/packages/ra-cubicweb/src/index.ts index 7bfc6143c1b7fc5f8e99aa0cd0a0d5ba270a6a22_cGFja2FnZXMvcmEtY3ViaWN3ZWIvc3JjL2luZGV4LnRz..200e6984621f3e216d7c4535143f72e3cba6cb01_cGFja2FnZXMvcmEtY3ViaWN3ZWIvc3JjL2luZGV4LnRz 100644 --- a/packages/ra-cubicweb/src/index.ts +++ b/packages/ra-cubicweb/src/index.ts @@ -136,7 +136,19 @@ 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"), delete: (_resource, _params) => Promise.reject("Not implemented"),