From 34709e26af9e78c2cd9d13bb2d9e136d8123d063 Mon Sep 17 00:00:00 2001 From: HannesOberreiter Date: Wed, 22 May 2024 15:27:42 +0200 Subject: [PATCH] feat: :sparkles: hook webhook to events --- server/api/controllers/lists/update.js | 4 +++- server/api/controllers/tasks/create.js | 3 ++- server/api/helpers/actions/create-one.js | 9 +++++++++ server/api/helpers/actions/delete-one.js | 8 ++++++++ server/api/helpers/actions/update-one.js | 8 ++++++++ server/api/helpers/attachments/create-one.js | 9 +++++++++ server/api/helpers/attachments/delete-one.js | 9 +++++++++ server/api/helpers/attachments/update-one.js | 8 ++++++++ server/api/helpers/boards/create-one.js | 8 ++++++++ server/api/helpers/boards/delete-one.js | 8 ++++++++ server/api/helpers/boards/update-one.js | 8 ++++++++ server/api/helpers/cards/create-one.js | 11 +++++++++++ server/api/helpers/cards/delete-one.js | 9 +++++++++ server/api/helpers/cards/duplicate-one.js | 10 ++++++++++ server/api/helpers/cards/update-one.js | 9 +++++++++ server/api/helpers/lists/create-one.js | 8 ++++++++ server/api/helpers/lists/delete-one.js | 8 ++++++++ server/api/helpers/lists/update-one.js | 12 ++++++++++++ server/api/helpers/projects/create-one.js | 7 +++++++ server/api/helpers/projects/delete-one.js | 7 +++++++ server/api/helpers/projects/update-one.js | 7 +++++++ server/api/helpers/tasks/create-one.js | 13 +++++++++++++ server/api/helpers/tasks/delete-one.js | 8 ++++++++ server/api/helpers/tasks/update-one.js | 9 +++++++++ 24 files changed, 198 insertions(+), 2 deletions(-) diff --git a/server/api/controllers/lists/update.js b/server/api/controllers/lists/update.js index 2cb34e2..15f5f20 100755 --- a/server/api/controllers/lists/update.js +++ b/server/api/controllers/lists/update.js @@ -35,7 +35,8 @@ module.exports = { async fn(inputs) { const { currentUser } = this.req; - let { list } = await sails.helpers.lists + // eslint-disable-next-line prefer-const + let { list, board } = await sails.helpers.lists .getProjectPath(inputs.id) .intercept('pathNotFound', () => Errors.LIST_NOT_FOUND); @@ -56,6 +57,7 @@ module.exports = { list = await sails.helpers.lists.updateOne.with({ values, + board, record: list, request: this.req, }); diff --git a/server/api/controllers/tasks/create.js b/server/api/controllers/tasks/create.js index 0d2b5a4..b7c935a 100755 --- a/server/api/controllers/tasks/create.js +++ b/server/api/controllers/tasks/create.js @@ -39,7 +39,7 @@ module.exports = { async fn(inputs) { const { currentUser } = this.req; - const { card } = await sails.helpers.cards + const { card, board } = await sails.helpers.cards .getProjectPath(inputs.cardId) .intercept('pathNotFound', () => Errors.CARD_NOT_FOUND); @@ -62,6 +62,7 @@ module.exports = { values: { ...values, card, + board, }, request: this.req, }); diff --git a/server/api/helpers/actions/create-one.js b/server/api/helpers/actions/create-one.js index b03adfd..869a926 100644 --- a/server/api/helpers/actions/create-one.js +++ b/server/api/helpers/actions/create-one.js @@ -95,6 +95,15 @@ module.exports = { buildAndSendSlackMessage(values.user, values.card, action); } + await sails.helpers.utils.sendWebhook.with({ + event: 'action_create', + data: action, + projectId: inputs.board.projectId, + user: inputs.request.currentUser, + card: values.card, + board: inputs.board, + }); + return action; }, }; diff --git a/server/api/helpers/actions/delete-one.js b/server/api/helpers/actions/delete-one.js index 6b93597..bd1028f 100644 --- a/server/api/helpers/actions/delete-one.js +++ b/server/api/helpers/actions/delete-one.js @@ -25,6 +25,14 @@ module.exports = { }, inputs.request, ); + + await sails.helpers.utils.sendWebhook.with({ + event: 'action_delete', + data: action, + projectId: inputs.board.projectId, + user: inputs.request.currentUser, + board: inputs.board, + }); } return action; diff --git a/server/api/helpers/actions/update-one.js b/server/api/helpers/actions/update-one.js index 47d2f52..8f6fd8e 100644 --- a/server/api/helpers/actions/update-one.js +++ b/server/api/helpers/actions/update-one.js @@ -31,6 +31,14 @@ module.exports = { }, inputs.request, ); + + await sails.helpers.utils.sendWebhook.with({ + event: 'action_update', + data: action, + projectId: inputs.board.projectId, + user: inputs.request.currentUser, + board: inputs.board, + }); } return action; diff --git a/server/api/helpers/attachments/create-one.js b/server/api/helpers/attachments/create-one.js index 6ed6e6b..66c193c 100644 --- a/server/api/helpers/attachments/create-one.js +++ b/server/api/helpers/attachments/create-one.js @@ -58,6 +58,15 @@ module.exports = { }); } + await sails.helpers.utils.sendWebhook.with({ + event: 'attachment_create', + data: attachment, + projectId: values.card.board.projectId, + user: inputs.request.currentUser, + card: values.card, + board: values.card.board, + }); + return attachment; }, }; diff --git a/server/api/helpers/attachments/delete-one.js b/server/api/helpers/attachments/delete-one.js index 2f199b4..2d3c1ae 100644 --- a/server/api/helpers/attachments/delete-one.js +++ b/server/api/helpers/attachments/delete-one.js @@ -48,6 +48,15 @@ module.exports = { }, inputs.request, ); + + await sails.helpers.utils.sendWebhook.with({ + event: 'attachment_delete', + data: attachment, + projectId: inputs.board.projectId, + user: inputs.request.currentUser, + card: inputs.card, + board: inputs.board, + }); } return attachment; diff --git a/server/api/helpers/attachments/update-one.js b/server/api/helpers/attachments/update-one.js index ba9dd24..7de6b29 100644 --- a/server/api/helpers/attachments/update-one.js +++ b/server/api/helpers/attachments/update-one.js @@ -31,6 +31,14 @@ module.exports = { }, inputs.request, ); + + await sails.helpers.utils.sendWebhook.with({ + event: 'attachment_update', + data: attachment, + projectId: inputs.board.projectId, + user: inputs.request.currentUser, + board: inputs.board, + }); } return attachment; diff --git a/server/api/helpers/boards/create-one.js b/server/api/helpers/boards/create-one.js index f9a43c4..68b392a 100644 --- a/server/api/helpers/boards/create-one.js +++ b/server/api/helpers/boards/create-one.js @@ -111,6 +111,14 @@ module.exports = { ); }); + await sails.helpers.utils.sendWebhook.with({ + event: 'board_create', + data: board, + projectId: board.projectId, + user: inputs.request.currentUser, + board, + }); + return { board, boardMembership, diff --git a/server/api/helpers/boards/delete-one.js b/server/api/helpers/boards/delete-one.js index 4fdcc11..5bdac25 100644 --- a/server/api/helpers/boards/delete-one.js +++ b/server/api/helpers/boards/delete-one.js @@ -35,6 +35,14 @@ module.exports = { }); } + await sails.helpers.utils.sendWebhook.with({ + event: 'board_delete', + data: board, + projectId: board.projectId, + user: inputs.request.currentUser, + board, + }); + return board; }, }; diff --git a/server/api/helpers/boards/update-one.js b/server/api/helpers/boards/update-one.js index 9b26733..846954d 100644 --- a/server/api/helpers/boards/update-one.js +++ b/server/api/helpers/boards/update-one.js @@ -83,6 +83,14 @@ module.exports = { }); } + await sails.helpers.utils.sendWebhook.with({ + event: 'board_update', + data: board, + projectId: board.projectId, + user: inputs.request.currentUser, + board, + }); + return board; }, }; diff --git a/server/api/helpers/cards/create-one.js b/server/api/helpers/cards/create-one.js index 847a00c..5b3e7d5 100644 --- a/server/api/helpers/cards/create-one.js +++ b/server/api/helpers/cards/create-one.js @@ -109,6 +109,17 @@ module.exports = { user: values.creatorUser, }, board: inputs.board, + request: inputs.request, + }); + + await sails.helpers.utils.sendWebhook.with({ + event: 'card_create', + data: card, + projectId: inputs.board.projectId, + user: inputs.request.currentUser, + card, + board: inputs.board, + list: values.list, }); return card; diff --git a/server/api/helpers/cards/delete-one.js b/server/api/helpers/cards/delete-one.js index a947f73..1f3de56 100644 --- a/server/api/helpers/cards/delete-one.js +++ b/server/api/helpers/cards/delete-one.js @@ -33,6 +33,15 @@ module.exports = { if (sails.config.custom.slackBotToken) { buildAndSendSlackMessage(inputs.user, card); } + + await sails.helpers.utils.sendWebhook.with({ + event: 'card_delete', + data: card, + projectId: card.board.projectId, + user: inputs.request.currentUser, + card, + board: card.board, + }); } return card; diff --git a/server/api/helpers/cards/duplicate-one.js b/server/api/helpers/cards/duplicate-one.js index a63feaa..dba680f 100644 --- a/server/api/helpers/cards/duplicate-one.js +++ b/server/api/helpers/cards/duplicate-one.js @@ -134,6 +134,16 @@ module.exports = { board: inputs.board, }); + await sails.helpers.utils.sendWebhook.with({ + event: 'card_create', + data: card, + projectId: inputs.board.projectId, + user: inputs.request.currentUser, + card, + board: inputs.board, + list: inputs.list, + }); + return { card, cardMemberships: nextCardMemberships, diff --git a/server/api/helpers/cards/update-one.js b/server/api/helpers/cards/update-one.js index 4363f9b..f5a352d 100644 --- a/server/api/helpers/cards/update-one.js +++ b/server/api/helpers/cards/update-one.js @@ -269,6 +269,15 @@ module.exports = { } } + await sails.helpers.utils.sendWebhook.with({ + event: 'card_update', + data: card, + projectId: inputs.board.projectId, + user: inputs.request.currentUser, + card, + board: inputs.board, + }); + return card; }, }; diff --git a/server/api/helpers/lists/create-one.js b/server/api/helpers/lists/create-one.js index 95c258b..08193be 100644 --- a/server/api/helpers/lists/create-one.js +++ b/server/api/helpers/lists/create-one.js @@ -67,6 +67,14 @@ module.exports = { inputs.request, ); + await sails.helpers.utils.sendWebhook.with({ + event: 'list_create', + data: list, + projectId: values.board.projectId, + user: inputs.request.currentUser, + board: values.board, + }); + return list; }, }; diff --git a/server/api/helpers/lists/delete-one.js b/server/api/helpers/lists/delete-one.js index 47eb764..1154562 100644 --- a/server/api/helpers/lists/delete-one.js +++ b/server/api/helpers/lists/delete-one.js @@ -21,6 +21,14 @@ module.exports = { }, inputs.request, ); + + await sails.helpers.utils.sendWebhook.with({ + event: 'list_delete', + data: list, + projectId: list.board.projectId, + user: inputs.request.currentUser, + board: list.board, + }); } return list; diff --git a/server/api/helpers/lists/update-one.js b/server/api/helpers/lists/update-one.js index 6b2b0e8..7c85cf6 100644 --- a/server/api/helpers/lists/update-one.js +++ b/server/api/helpers/lists/update-one.js @@ -21,6 +21,10 @@ module.exports = { custom: valuesValidator, required: true, }, + board: { + type: 'ref', + required: true, + }, request: { type: 'ref', }, @@ -67,6 +71,14 @@ module.exports = { }, inputs.request, ); + + await sails.helpers.utils.sendWebhook.with({ + event: 'list_update', + data: list, + projectId: inputs.board.projectId, + user: inputs.request.currentUser, + board: inputs.board, + }); } return list; diff --git a/server/api/helpers/projects/create-one.js b/server/api/helpers/projects/create-one.js index fb97f00..6c936da 100644 --- a/server/api/helpers/projects/create-one.js +++ b/server/api/helpers/projects/create-one.js @@ -32,6 +32,13 @@ module.exports = { inputs.request, ); + await sails.helpers.utils.sendWebhook.with({ + event: 'project_create', + data: project, + projectId: project.id, + user: inputs.request.currentUser, + }); + return { project, projectManager, diff --git a/server/api/helpers/projects/delete-one.js b/server/api/helpers/projects/delete-one.js index 3328f2f..fe69cd7 100644 --- a/server/api/helpers/projects/delete-one.js +++ b/server/api/helpers/projects/delete-one.js @@ -37,6 +37,13 @@ module.exports = { inputs.request, ); }); + + await sails.helpers.utils.sendWebhook.with({ + event: 'project_delete', + data: project, + projectId: project.id, + user: inputs.request.currentUser, + }); } return project; diff --git a/server/api/helpers/projects/update-one.js b/server/api/helpers/projects/update-one.js index 71e095f..2e91a5c 100644 --- a/server/api/helpers/projects/update-one.js +++ b/server/api/helpers/projects/update-one.js @@ -108,6 +108,13 @@ module.exports = { inputs.request, ); }); + + await sails.helpers.utils.sendWebhook.with({ + event: 'project_update', + data: project, + projectId: project.id, + user: inputs.request.currentUser, + }); } return project; diff --git a/server/api/helpers/tasks/create-one.js b/server/api/helpers/tasks/create-one.js index c42b007..1a19ac0 100644 --- a/server/api/helpers/tasks/create-one.js +++ b/server/api/helpers/tasks/create-one.js @@ -21,6 +21,10 @@ module.exports = { custom: valuesValidator, required: true, }, + board: { + type: 'ref', + required: true, + }, request: { type: 'ref', }, @@ -67,6 +71,15 @@ module.exports = { inputs.request, ); + await sails.helpers.utils.sendWebhook.with({ + event: 'task_create', + data: task, + projectId: inputs.board.projectId, + user: inputs.request.currentUser, + card: values.card, + board: inputs.board, + }); + return task; }, }; diff --git a/server/api/helpers/tasks/delete-one.js b/server/api/helpers/tasks/delete-one.js index f32e5a9..9400cd4 100644 --- a/server/api/helpers/tasks/delete-one.js +++ b/server/api/helpers/tasks/delete-one.js @@ -25,6 +25,14 @@ module.exports = { }, inputs.request, ); + + await sails.helpers.utils.sendWebhook.with({ + event: 'task_delete', + data: task, + projectId: inputs.board.projectId, + user: inputs.request.currentUser, + board: inputs.board, + }); } return task; diff --git a/server/api/helpers/tasks/update-one.js b/server/api/helpers/tasks/update-one.js index 69958af..6723b43 100644 --- a/server/api/helpers/tasks/update-one.js +++ b/server/api/helpers/tasks/update-one.js @@ -71,6 +71,15 @@ module.exports = { }, inputs.request, ); + + await sails.helpers.utils.sendWebhook.with({ + event: 'task_update', + data: task, + projectId: inputs.board.projectId, + user: inputs.request.currentUser, + card: values.card, + board: inputs.board, + }); } return task;