Implementando webhooks para o plugin Calendar

Olá!

Gostaria de saber se você estaria interessado na implementação de alguns webhooks para o plugin Calendar.

Posso trabalhar nisso se a comunidade achar que seria uma boa adição ao plugin…

Dito isso, levará tempo, pois não consigo encontrar uma documentação adequada sobre como implementar webhooks em um plugin e terei que fazer algumas pesquisas :slight_smile:

5 curtidas

Você tem alguns casos de uso interessantes? Quais operações você implementaria? Criar/atualizar/excluir/inscrição em evento/cancelamento de inscrição em evento?

Sim, estes são os eventos que quero criar por enquanto; o caso de uso é acionar uma plataforma externa de gerenciamento de eventos.

A próxima pergunta será sobre poder aceitar hooks da plataforma remota, mas posso criar um plugin separado para isso, pois não pode ser genérico (minha primeira suposição), a menos que implementemos suporte ao formato iCal (mas, ainda assim, já consigo ver muitas limitações nisso).

1 curtida

Encontrei um plugin oficial com extensões de webhook: GitHub - discourse/discourse-solved: Allow accepted answers on topics.

Então, posso começar a trabalhar na implementação se não houver objeções :slight_smile:

Eu analisei o código e descobri que não é tão fácil quanto deveria ser adicionar novos webhooks.

  • Webhooks fazem parte de um grupo de webhooks (acho que é para o admin e/ou para agrupar eventos por namespace)
  • Para o plugin Solved, existem 2 webhooks: solved_accepted_solution e solved_unaccepted_solution, no grupo solved

Onde dá errado é:

  • o grupo solved está codificado diretamente no modelo WebHookEventType do Discourse
  • os dois eventos também estão codificados diretamente no modelo WebHookEventType do Discourse

Vou ver se e como consigo declarar novos eventos sem ter que mexer no código do Discourse…

1 curtida