diff --git a/packages/ra-cubicweb/src/index.ts b/packages/ra-cubicweb/src/index.ts index 200e6984621f3e216d7c4535143f72e3cba6cb01_cGFja2FnZXMvcmEtY3ViaWN3ZWIvc3JjL2luZGV4LnRz..6838762b5796abfc26094b14e9c06e0816f668c8_cGFja2FnZXMvcmEtY3ViaWN3ZWIvc3JjL2luZGV4LnRz 100644 --- a/packages/ra-cubicweb/src/index.ts +++ b/packages/ra-cubicweb/src/index.ts @@ -150,7 +150,20 @@ 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"), };