# HG changeset patch # User Frank Bessou <frank.bessou@logilab.fr> # Date 1613999501 -3600 # Mon Feb 22 14:11:41 2021 +0100 # Node ID 6838762b5796abfc26094b14e9c06e0816f668c8 # Parent 200e6984621f3e216d7c4535143f72e3cba6cb01 feat: implement create method diff --git a/packages/ra-cubicweb/src/index.ts b/packages/ra-cubicweb/src/index.ts --- 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"), };