graphql-engine icon indicating copy to clipboard operation
graphql-engine copied to clipboard

How to subscribe to the delete event

Open true-eye opened this issue 3 years ago • 1 comments

Hi, Team! I have a question about the delete subscription I'm building a simple chat application and I have a 'notes' table. When I delete a 'note' from one side, I would like to subscribe to it on the other side to delete it on the UI.

subscription {
    notes(order_by: { created_at: desc }, limit: 1) {

For the performance, I just subscribe to the latest But when I delete a note, it doesn't subscribe to the deleted note. Instead, it returns the previously created one.

Please help me Thanks in advance.

true-eye avatar Aug 19 '20 12:08 true-eye

Subscriptions are "live queries" and will give you the result of the subscribed query, whenever it changes. In your case, you have subscribed to the result of "last created note" and hence after you delete a note you get the previously created one.

There are many ways to find out what notes got deleted through this query. One way to delete all notes which are > created_at (assuming only newer notes are deleted). Another way is use the subscription as a "notification" service and refetch the new list of notes that you want to display. Another way is to put a deleted column (i.e. a soft delete) instead of removing the entire row.

You can also talk to our community for such questions here: https://discord.com/invite/hasura

tirumaraiselvan avatar Aug 31 '20 11:08 tirumaraiselvan