J’ai essayé de faire une requête aussi simple que celle-ci pour commencer :
SELECT *
FROM discourse_post_event_invitees
WHERE post_id = :post_id
Malheureusement, je n’obtiens aucun résultat pour un message dont je sais qu’il a 15 utilisateurs marqués comme “Participeront”. Des idées ?
1 « J'aime »
Cela devrait fonctionner. Récupérez-vous le bon identifiant de publication à partir du JSON ?
Je pense que vous pourriez le relier à la table des publications et utiliser un identifiant de sujet, ce qui pourrait être moins compliqué que de trouver l’identifiant de publication. Quelque chose comme :
-- [params]
-- topic_id :topic_id
SELECT ei.user_id, ei.status
FROM discourse_post_event_invitees ei
JOIN posts p ON p.id = ei.post_id
WHERE p.topic_id = :topic_id
2 « J'aime »
D’accord, on s’en rapproche. Cela renvoie tout le monde qui participe ou est intéressé, comment faites-vous la différence ?
Ah, d’accord, le nom de la clé « status » m’a un peu embrouillé. Je pensais que c’était une sorte de statut de l’événement.
status = 0 = Présent
status = 1 = Intéressé
status = 2 = Absent
2 « J'aime »
Vous pouvez le rendre un peu plus facile à lire sans avoir à mémoriser les codes également si vous ajoutez quelque chose comme ceci :
-- [params]
-- topic_id :topic_id
SELECT ei.user_id,
CASE
WHEN ei.status = 0 THEN 'Going'
WHEN ei.status = 1 THEN 'Interested'
WHEN ei.status = 2 THEN 'Not going'
END AS "Going?"
FROM discourse_post_event_invitees ei
JOIN posts p ON p.id = ei.post_id
WHERE p.topic_id = :topic_id
ORDER BY ei.status
4 « J'aime »