Implementazione di webhook per il plugin Calendar

Ciao!

Volevo sapere se fossi interessato all’implementazione di alcuni webhook per il plugin Calendario.

Posso lavorarci se la community ritiene che sarebbe una buona aggiunta al plugin…

Detto questo, ci vorrà del tempo poiché non riesco a trovare una documentazione adeguata su come implementare i webhook in un plugin e dovrò fare qualche ricerca :slight_smile:

5 Mi Piace

Hai alcuni casi d’uso interessanti? Quali operazioni implementeresti? Creazione/aggiornamento/eliminazione/iscrizione all’evento/annullamento iscrizione all’evento?

Sì, questi sono gli eventi che voglio creare per ora; il caso d’uso è quello di attivare una piattaforma esterna di gestione eventi.

La prossima domanda sarà quella di poter accettare hook dalla piattaforma remota, ma potrei creare un plugin separato per questo poiché non può essere generico (la mia prima ipotesi) a meno che non implementiamo il supporto per il formato iCal (ma comunque, vedo già molte limitazioni a questo).

1 Mi Piace

Ho trovato un plugin ufficiale con estensioni webhook: GitHub - discourse/discourse-solved: Allow accepted answers on topics.

Quindi posso iniziare a lavorare sull’implementazione se non ci sono obiezioni :slight_smile:

Ho analizzato il codice e ho scoperto che non è facile come dovrebbe essere aggiungere nuovi webhook.

  • I webhook fanno parte di un gruppo di webhook (immagino sia per l’amministratore e/o per creare namespace per gli eventi)
  • Per il plugin Solved, ci sono 2 webhook: solved_accepted_solution e solved_unaccepted_solution, nel gruppo solved

Dove le cose vanno male è:

  • il gruppo solved è codificato in modo fisso nel modello WebHookEventType di Discourse
  • i due eventi sono anch’essi codificati in modo fisso nel modello WebHookEventType di Discourse

Vedrò se e come riesco a dichiarare nuovi eventi senza dover toccare il codice di Discourse…

1 Mi Piace