From d50a8b1686f9a5d9af929531b6f60b2f398092de Mon Sep 17 00:00:00 2001 From: Thomas Kranitsas Date: Wed, 9 Feb 2022 16:22:50 +0200 Subject: [PATCH 1/3] Update project info when work item goes into draft state --- src/common/helper.js | 28 +++++++++++++++++++++++++++- src/services/ChallengeService.js | 12 ++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/common/helper.js b/src/common/helper.js index b9b2ea63..f36264e3 100644 --- a/src/common/helper.js +++ b/src/common/helper.js @@ -583,6 +583,31 @@ async function activateProject (projectId, currentUser, name, description) { } } +/** + * Update self service project info + * @param {*} projectId the project id + * @param {*} workItemPlannedEndDate the planned end date of the work item + * @param {*} currentUser the current user + */ +async function updateSelfServiceProjectInfo (projectId, workItemPlannedEndDate, currentUser) { + const project = await ensureProjectExist(projectId, currentUser) + const payment = await getProjectPayment(projectId) + const token = await getM2MToken() + const url = `${config.PROJECTS_API_URL}/${projectId}` + const res = await axios.patch(url, { + details: { + ...project.details, + paymentProvider: config.DEFAULT_PAYMENT_PROVIDER, + paymentId: payment.id, + paymentIntentId: payment.paymentIntentId, + paymentAmount: payment.amount, + paymentCurrency: payment.currency, + paymentStatus: payment.status, + workItemPlannedEndDate + } + }, { headers: { Authorization: `Bearer ${token}` } }) +} + /** * Get resource roles * @returns {Promise} the challenge resources @@ -1257,5 +1282,6 @@ module.exports = { sendSelfServiceNotification, getMemberByHandle, submitZendeskRequest, - getMemberById + getMemberById, + updateSelfServiceProjectInfo } diff --git a/src/services/ChallengeService.js b/src/services/ChallengeService.js index 4480dac7..a150e205 100644 --- a/src/services/ChallengeService.js +++ b/src/services/ChallengeService.js @@ -1673,6 +1673,18 @@ async function update (currentUser, challengeId, data, isFull) { data.endDate = helper.calculateChallengeEndDate(challenge, data) } + + // PUT HERE + if (data.status) { + if (challenge.legacy.selfService && data.status === constants.challengeStatuses.Draft) { + try { + await helper.updateSelfServiceProjectInfo(challenge.projectId, data.endDate || challenge.endDate. currentUser) + } catch (e) { + logger.debug(`There was an error trying to update the project: ${e.message}`) + } + } + } + if (data.winners && data.winners.length && data.winners.length > 0) { await validateWinners(data.winners, challengeId) } From 0a4e11385096a7e0678cc39c76f3851bde0e0b05 Mon Sep 17 00:00:00 2001 From: Thomas Kranitsas Date: Thu, 10 Feb 2022 13:15:48 +0200 Subject: [PATCH 2/3] add logging --- src/services/ChallengeService.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/services/ChallengeService.js b/src/services/ChallengeService.js index a150e205..1078b44e 100644 --- a/src/services/ChallengeService.js +++ b/src/services/ChallengeService.js @@ -1678,6 +1678,7 @@ async function update (currentUser, challengeId, data, isFull) { if (data.status) { if (challenge.legacy.selfService && data.status === constants.challengeStatuses.Draft) { try { + logger.info('will try to update the project information') await helper.updateSelfServiceProjectInfo(challenge.projectId, data.endDate || challenge.endDate. currentUser) } catch (e) { logger.debug(`There was an error trying to update the project: ${e.message}`) From e3a1f8b7c1a5171b0066c165a518fdd2adc7a951 Mon Sep 17 00:00:00 2001 From: Thomas Kranitsas Date: Thu, 10 Feb 2022 13:23:09 +0200 Subject: [PATCH 3/3] fix typo --- src/services/ChallengeService.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/services/ChallengeService.js b/src/services/ChallengeService.js index 1078b44e..7361d2e0 100644 --- a/src/services/ChallengeService.js +++ b/src/services/ChallengeService.js @@ -1678,8 +1678,7 @@ async function update (currentUser, challengeId, data, isFull) { if (data.status) { if (challenge.legacy.selfService && data.status === constants.challengeStatuses.Draft) { try { - logger.info('will try to update the project information') - await helper.updateSelfServiceProjectInfo(challenge.projectId, data.endDate || challenge.endDate. currentUser) + await helper.updateSelfServiceProjectInfo(challenge.projectId, data.endDate || challenge.endDate, currentUser) } catch (e) { logger.debug(`There was an error trying to update the project: ${e.message}`) }