1
0

feat(webhooks): register task and project events as webhook

This commit is contained in:
kolaente
2023-09-13 21:25:05 +02:00
parent ad7d485eb5
commit e5b8d8bd2d
3 changed files with 126 additions and 4 deletions

View File

@ -65,6 +65,22 @@ func RegisterListeners() {
events.RegisterListener((&TaskDeletedEvent{}).Name(), &RemoveTaskFromTypesense{})
events.RegisterListener((&TaskCreatedEvent{}).Name(), &AddTaskToTypesense{})
}
RegisterEventForWebhook(&TaskCreatedEvent{})
RegisterEventForWebhook(&TaskUpdatedEvent{})
RegisterEventForWebhook(&TaskDeletedEvent{})
RegisterEventForWebhook(&TaskAssigneeCreatedEvent{})
RegisterEventForWebhook(&TaskAssigneeDeletedEvent{})
RegisterEventForWebhook(&TaskCommentCreatedEvent{})
RegisterEventForWebhook(&TaskCommentUpdatedEvent{})
RegisterEventForWebhook(&TaskCommentDeletedEvent{})
RegisterEventForWebhook(&TaskAttachmentCreatedEvent{})
RegisterEventForWebhook(&TaskAttachmentDeletedEvent{})
RegisterEventForWebhook(&TaskRelationCreatedEvent{})
RegisterEventForWebhook(&TaskRelationDeletedEvent{})
RegisterEventForWebhook(&ProjectUpdatedEvent{})
RegisterEventForWebhook(&ProjectDeletedEvent{})
RegisterEventForWebhook(&ProjectSharedWithUserEvent{})
RegisterEventForWebhook(&ProjectSharedWithTeamEvent{})
}
//////
@ -609,6 +625,26 @@ func (s *SendProjectCreatedNotification) Handle(msg *message.Message) (err error
return nil
}
// WebhookListener represents a listener
type WebhookListener struct {
}
// Name defines the name for the WebhookListener listener
func (s *WebhookListener) Name() string {
return "webhook.listener"
}
// Handle is executed when the event WebhookListener listens on is fired
func (s *WebhookListener) Handle(msg *message.Message) (err error) {
event := &ProjectUpdatedEvent{}
err = json.Unmarshal(msg.Payload, event)
if err != nil {
return err
}
return nil
}
///////
// Team Events