Open ivansglazunov opened 1 year ago
Well, it turns out it is not possible to solve until https://github.com/hasura/graphql-engine/issues/9997 is implemented.
Use deep.select
before deep.delete
:
const adminId = await deep.id('deep', 'admin');
const containTypeId = await deep.id('@deep-foundation/core', 'Contain');
const messageTypeId = await deep.id('@deep-foundation/messaging', 'Message');
const replyTypeId = await deep.id('@deep-foundation/messaging', 'Reply');
const tokensTypeId = await deep.id('@deep-foundation/tokens', 'Tokens');
const linksToDelete = await deep.select({ from_id: adminId, type_id: containTypeId, to: { type_id: { _in: [messageTypeId,replyTypeId,tokensTypeId] } }, limit: 1 });
const linksIdsToDelete = linksToDelete.data.map(link => link.id);
await deep.delete({ id: { _in: linksIdsToDelete } });
Btw, we can still use deep.select
in that case inside deep.delete
logic in DeepClient
. While we're waiting for changes in Hasura.
This code is transformed to query:
And if it is executed it may give an error:
But it does not use
limit
.We need support limiting of
deep.delete
just like withdeep.select
. And also order_by and offset.