# 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"),
   };