Édition des publications provoque une notification

Imaginons donc un message contenant trois mentions de groupes différentes. Il est modifié et une quatrième mention est ajoutée.

Lors de l’enregistrement de la modification, nous pouvons utiliser une requête comme celle-ci pour obtenir la liste actuelle des mentions de groupes pour ce message.

-- [params]
-- text :post_id

select gm.group_id, g.name
from group_mentions gm
join groups g on (gm.group_id = g.id)
where post_id = :post_id

Ensuite, en comparant les résultats de la requête avec la liste des groupes mentionnés dans le message, nous pouvons identifier les nouvelles mentions.

Cela ne semble pas être un calcul trop lourd, mais peut-être que je passe à côté d’une évidence. Cela ressemble aussi à quelque chose qui pourrait être effectué dans une tâche en arrière-plan.

En ce qui concerne la bannière JIT concernant la notification du/des groupe(s), cette logique pourrait peut-être être exposée via un point de terminaison API (/post/<id>/mentions.json) pour récupérer ces données de manière asynchrone.