diff --git a/packages/demo/src/schema.ts b/packages/demo/src/schema.ts index cf2cc4c855f94cf386c76051de0836568aaf988c_cGFja2FnZXMvZGVtby9zcmMvc2NoZW1hLnRz..1e7db076f47c67a3419447e79fa87289a27c1d9b_cGFja2FnZXMvZGVtby9zcmMvc2NoZW1hLnRz 100644 --- a/packages/demo/src/schema.ts +++ b/packages/demo/src/schema.ts @@ -29,8 +29,8 @@ }, { is_in: { - subject: "Museum", - object: "City", + subject: ["Museum"], + object: ["City"], cardinality: "1*", }, director: { @@ -34,8 +34,8 @@ cardinality: "1*", }, director: { - subject: "Museum", - object: "Person", + subject: ["Museum"], + object: ["Person"], cardinality: "**", }, } diff --git a/packages/ra-cubicweb/src/Schema.ts b/packages/ra-cubicweb/src/Schema.ts index cf2cc4c855f94cf386c76051de0836568aaf988c_cGFja2FnZXMvcmEtY3ViaWN3ZWIvc3JjL1NjaGVtYS50cw==..1e7db076f47c67a3419447e79fa87289a27c1d9b_cGFja2FnZXMvcmEtY3ViaWN3ZWIvc3JjL1NjaGVtYS50cw== 100644 --- a/packages/ra-cubicweb/src/Schema.ts +++ b/packages/ra-cubicweb/src/Schema.ts @@ -15,8 +15,8 @@ string, { cardinality: CardinalityPair; - subject: keyof E; - object: keyof E; + subject: Array<keyof E>; + object: Array<keyof E>; } >; diff --git a/packages/ra-cubicweb/src/index.ts b/packages/ra-cubicweb/src/index.ts index cf2cc4c855f94cf386c76051de0836568aaf988c_cGFja2FnZXMvcmEtY3ViaWN3ZWIvc3JjL2luZGV4LnRz..1e7db076f47c67a3419447e79fa87289a27c1d9b_cGFja2FnZXMvcmEtY3ViaWN3ZWIvc3JjL2luZGV4LnRz 100644 --- a/packages/ra-cubicweb/src/index.ts +++ b/packages/ra-cubicweb/src/index.ts @@ -91,7 +91,7 @@ const subjectRelations = Object.fromEntries( Object.entries(schema.relationships).filter( ([_relationName, definition]: [string, S["relationships"][string]]) => - definition.subject === resource + definition.subject.includes(resource) ) ); for (const relationName in subjectRelations) { @@ -95,7 +95,4 @@ ) ); for (const relationName in subjectRelations) { - const definition: S["relationships"][string] = - subjectRelations[relationName]; - const result = await rqlClient.queryRows( @@ -101,5 +98,5 @@ const result = await rqlClient.queryRows( - `Any TARGET Where TARGET is ${definition.object},X ${relationName} TARGET, X eid ${params.id}` + `Any TARGET Where X ${relationName} TARGET, X eid ${params.id}` ); if (result.length !== 0) { entity[relationName] = result.map((row) => row[0]);