From b1ad354815cf3b65f7f1a389e446ed5f320092cf Mon Sep 17 00:00:00 2001 From: Matthieu Bollot Date: Fri, 5 Apr 2024 14:45:13 +0200 Subject: [PATCH] refactor: extract code from controllers to helpers --- server/api/controllers/cards/create.js | 7 ------- server/api/controllers/cards/delete.js | 7 ------- server/api/controllers/cards/update.js | 14 -------------- server/api/controllers/comment-actions/create.js | 8 -------- server/api/helpers/actions/create-one.js | 8 ++++++++ server/api/helpers/cards/create-one.js | 8 ++++++++ server/api/helpers/cards/delete-one.js | 7 +++++++ server/api/helpers/cards/update-one.js | 12 ++++++++++++ 8 files changed, 35 insertions(+), 36 deletions(-) diff --git a/server/api/controllers/cards/create.js b/server/api/controllers/cards/create.js index b46ef3a..b847c3e 100755 --- a/server/api/controllers/cards/create.js +++ b/server/api/controllers/cards/create.js @@ -1,5 +1,4 @@ const moment = require('moment'); -const services = require('../../services/slack'); const Errors = { NOT_ENOUGH_RIGHTS: { @@ -110,12 +109,6 @@ module.exports = { }) .intercept('positionMustBeInValues', () => Errors.POSITION_MUST_BE_PRESENT); - const cardUrl = services.buildCardUrl(card); - const messageText = `${cardUrl} was created by ${currentUser.name} in *${list.name}*`; - services.sendSlackMessage(messageText).catch((error) => { - throw new Error('Failed to send Slack message:', error.message); - }); - return { item: card, }; diff --git a/server/api/controllers/cards/delete.js b/server/api/controllers/cards/delete.js index bb93b7e..e2b6d00 100755 --- a/server/api/controllers/cards/delete.js +++ b/server/api/controllers/cards/delete.js @@ -1,5 +1,3 @@ -const services = require('../../services/slack'); - const Errors = { NOT_ENOUGH_RIGHTS: { notEnoughRights: 'Not enough rights', @@ -56,11 +54,6 @@ module.exports = { throw Errors.CARD_NOT_FOUND; } - const messageText = `*${card.name}* was deleted by ${currentUser.name}`; - services.sendSlackMessage(messageText).catch((error) => { - throw new Error('Failed to send Slack message:', error.message); - }); - return { item: card, }; diff --git a/server/api/controllers/cards/update.js b/server/api/controllers/cards/update.js index 6f79968..8ee3752 100755 --- a/server/api/controllers/cards/update.js +++ b/server/api/controllers/cards/update.js @@ -1,5 +1,4 @@ const moment = require('moment'); -const services = require('../../services/slack'); const Errors = { NOT_ENOUGH_RIGHTS: { @@ -176,8 +175,6 @@ module.exports = { 'isSubscribed', ]); - const cardPositionBefore = card.position; - card = await sails.helpers.cards.updateOne .with({ board, @@ -198,17 +195,6 @@ module.exports = { throw Errors.CARD_NOT_FOUND; } - const cardPositionAfter = card.position; - const cardMoved = cardPositionBefore !== cardPositionAfter; - - if (cardMoved) { - const cardUrl = services.buildCardUrl(card); - const messageText = `${cardUrl} was moved by ${currentUser.name} to *${nextList.name}*`; - services.sendSlackMessage(messageText).catch((error) => { - throw new Error('Failed to send Slack message:', error.message); - }); - } - return { item: card, }; diff --git a/server/api/controllers/comment-actions/create.js b/server/api/controllers/comment-actions/create.js index a282cb0..7712a3a 100755 --- a/server/api/controllers/comment-actions/create.js +++ b/server/api/controllers/comment-actions/create.js @@ -1,5 +1,3 @@ -const services = require('../../services/slack'); - const Errors = { NOT_ENOUGH_RIGHTS: { notEnoughRights: 'Not enough rights', @@ -66,12 +64,6 @@ module.exports = { request: this.req, }); - const cardUrl = services.buildCardUrl(card); - const messageText = `*${currentUser.name}* commented on ${cardUrl}:\n>${inputs.text}`; - services.sendSlackMessage(messageText).catch((error) => { - throw new Error('Failed to send Slack message:', error.message); - }); - return { item: action, }; diff --git a/server/api/helpers/actions/create-one.js b/server/api/helpers/actions/create-one.js index 78d5e0c..773e0ce 100644 --- a/server/api/helpers/actions/create-one.js +++ b/server/api/helpers/actions/create-one.js @@ -1,3 +1,5 @@ +const services = require('../../services/slack'); + const valuesValidator = (value) => { if (!_.isPlainObject(value)) { return false; @@ -67,6 +69,12 @@ module.exports = { ), ); + const cardUrl = services.buildCardUrl(values.card); + const messageText = `*${inputs.values.user.name}* commented on ${cardUrl}:\n>${values.data.text}`; + services.sendSlackMessage(messageText).catch((error) => { + sails.log.error('Failed to send Slack message:', error.message); + }); + return action; }, }; diff --git a/server/api/helpers/cards/create-one.js b/server/api/helpers/cards/create-one.js index 847a00c..0a04016 100644 --- a/server/api/helpers/cards/create-one.js +++ b/server/api/helpers/cards/create-one.js @@ -1,3 +1,5 @@ +const services = require('../../services/slack'); + const valuesValidator = (value) => { if (!_.isPlainObject(value)) { return false; @@ -111,6 +113,12 @@ module.exports = { board: inputs.board, }); + const cardUrl = services.buildCardUrl(card); + const messageText = `${cardUrl} was created by ${values.creatorUser.name} in *${values.list.name}*`; + services.sendSlackMessage(messageText).catch((error) => { + sails.log.error('Failed to send Slack message:', error.message); + }); + return card; }, }; diff --git a/server/api/helpers/cards/delete-one.js b/server/api/helpers/cards/delete-one.js index fb72787..111247e 100644 --- a/server/api/helpers/cards/delete-one.js +++ b/server/api/helpers/cards/delete-one.js @@ -1,3 +1,5 @@ +const services = require('../../services/slack'); + module.exports = { inputs: { record: { @@ -21,6 +23,11 @@ module.exports = { }, inputs.request, ); + + const messageText = `*${card.name}* was deleted by ${inputs.request.name}`; + services.sendSlackMessage(messageText).catch((error) => { + sails.log.error('Failed to send Slack message:', error.message); + }); } return card; diff --git a/server/api/helpers/cards/update-one.js b/server/api/helpers/cards/update-one.js index 4363f9b..a496a1e 100644 --- a/server/api/helpers/cards/update-one.js +++ b/server/api/helpers/cards/update-one.js @@ -1,3 +1,5 @@ +const services = require('../../services/slack'); + const valuesValidator = (value) => { if (!_.isPlainObject(value)) { return false; @@ -269,6 +271,16 @@ module.exports = { } } + const cardMoved = inputs.values.list !== undefined; + + if (cardMoved) { + const cardUrl = services.buildCardUrl(card); + const messageText = `${cardUrl} was moved by ${inputs.user.name} to *${inputs.list.name}*`; + services.sendSlackMessage(messageText).catch((error) => { + sails.log.error('Failed to send Slack message:', error.message); + }); + } + return card; }, };