Mise en œuvre de webhooks pour le plugin Calendar

Bonjour !

Je voulais savoir si vous seriez intéressé par l’implémentation de quelques webhooks pour le plugin Calendar.

Je peux travailler dessus si la communauté pense que ce serait un bon ajout au plugin…

Cela dit, cela prendra du temps car je ne trouve pas de documentation appropriée sur la façon d’implémenter des webhooks dans un plugin, et je devrai faire quelques recherches :slight_smile:

5 « J'aime »

Avez-vous des cas d’utilisation intéressants ? Quelles opérations implémenteriez-vous ? Créer/mettre à jour/supprimer/inscription à un événement/désinscription à un événement ?

Oui, ce sont les événements que je souhaite créer pour l’instant ; le cas d’utilisation étant de déclencher une plateforme externe de gestion d’événements.

La prochaine question sera de pouvoir accepter des hooks depuis la plateforme distante, mais je créerai peut-être un plugin séparé pour cela car il ne peut pas être générique (ma première supposition) à moins que nous n’implémentions la prise en charge du format iCal (mais même ainsi, je vois déjà beaucoup de limitations à cela).

1 « J'aime »

J’ai trouvé un plugin officiel avec des extensions de webhook : GitHub - discourse/discourse-solved: Allow accepted answers on topics.

Je peux donc commencer à travailler sur l’implémentation s’il n’y a pas d’objection :slight_smile:

J’ai examiné le code et j’ai constaté qu’il n’est pas aussi facile qu’il le devrait pour ajouter de nouveaux webhooks.

  • Les webhooks font partie d’un groupe de webhooks (je suppose que c’est pour l’administrateur et/ou pour l’espace de noms des événements)
  • Pour le plugin Solved, il y a 2 webhooks : solved_accepted_solution et solved_unaccepted_solution, dans le groupe solved

Là où ça se complique :

  • le groupe solved est codé en dur dans le modèle WebHookEventType de Discourse
  • les deux événements sont également codés en dur dans le modèle WebHookEventType de Discourse

Je vais voir si et comment je peux quand même déclarer de nouveaux événements sans avoir à toucher au code de Discourse…

1 « J'aime »