From 76780816aa0055c4baa19a92192c3ccfe6180555 Mon Sep 17 00:00:00 2001 From: Thomas Kranitsas Date: Thu, 23 Jul 2020 21:23:36 +0300 Subject: [PATCH 1/2] Issue #233 --- src/services/ProcessorService.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/services/ProcessorService.js b/src/services/ProcessorService.js index e9bfe52..d1fe83a 100644 --- a/src/services/ProcessorService.js +++ b/src/services/ProcessorService.js @@ -283,7 +283,7 @@ processCreate.schema = { confidentialityType: Joi.string(), directProjectId: Joi.number(), forumId: Joi.number().integer().positive() - }), + }).unknown(true), billingAccountId: Joi.number(), name: Joi.string().required(), description: Joi.string(), @@ -397,7 +397,7 @@ processUpdate.schema = { directProjectId: Joi.number(), forumId: Joi.number().integer().positive(), informixModified: Joi.string() - }), + }).unknown(true), billingAccountId: Joi.number(), typeId: Joi.string(), name: Joi.string(), From d910db4c541d997bd529f179dd66ecb2e4ef95f0 Mon Sep 17 00:00:00 2001 From: Thomas Kranitsas Date: Thu, 23 Jul 2020 22:13:15 +0300 Subject: [PATCH 2/2] Update to reflect changes for supporting task syncing --- ReadMe.md | 2 +- config/default.js | 6 ++++++ src/constants.js | 10 ++++++++-- src/services/ProcessorService.js | 10 +++++----- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/ReadMe.md b/ReadMe.md index 0627428..b9250fa 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -49,7 +49,7 @@ The following parameters can be set in config files or in env variables: - V4_CHALLENGE_API_URL: v4 challenge api url, default value is 'http://localhost:4000/v4/challenges' - V4_TECHNOLOGIES_API_URL: v4 technologies api url, default value is 'http://localhost:4000/v4/technologies' - V4_PLATFORMS_API_URL: v4 platforms api url, default value is 'http://localhost:4000/v4/platforms' -- TASK_TYPE_ID: The v5 Type ID for tasks +- TASK_TYPE_IDS: The v5 Type ID for tasks per track - CHALLENGE_TYPE_ID: The v5 Type ID for regular challenges - FIRST_2_FINISH_TYPE_ID: The v5 Type ID for F2F challenges diff --git a/config/default.js b/config/default.js index 7674d83..3fbdd1f 100644 --- a/config/default.js +++ b/config/default.js @@ -45,6 +45,12 @@ module.exports = { // challenge types TASK_TYPE_ID: process.env.TASK_TYPE_ID || 'e885273d-aeda-42c0-917d-bfbf979afbba', + TASK_TYPE_IDS: { + DEVELOP: process.env.DEVELOP_TASK_TYPE_ID || 'e885273d-aeda-42c0-917d-bfbf979afbba', + DESIGN: process.env.DESIGN_TASK_TYPE_ID || '149a2013-92b9-4ca9-b35d-c337d47a2490', + QA: process.env.QA_TASK_TYPE_ID || 'a91e69fd-6240-4227-8484-66b8defc4ca9', + DATA_SCENCE: process.env.DATA_SCENCE_TASK_TYPE_ID || 'b3b60e22-e302-4db8-bef8-4eaff965565f' + }, CHALLENGE_TYPE_ID: process.env.CHALLENGE_TYPE_ID || '94eee466-9255-4b60-88d8-4f59c1810dd0', FIRST_2_FINISH_TYPE_ID: process.env.FIRST_2_FINISH_TYPE_ID || '6950164f-3c5e-4bdc-abc8-22aaf5a1bd49' } diff --git a/src/constants.js b/src/constants.js index 182155e..e8ddfd3 100644 --- a/src/constants.js +++ b/src/constants.js @@ -65,14 +65,20 @@ const challengeAbbreviations = { const legacySubTrackMapping = { [_.toLower(challengeTracks.DEVELOP)]: { - [config.TASK_TYPE_ID]: challengeAbbreviations.FIRST_2_FINISH, + [config.TASK_TYPE_IDS.DEVELOP]: challengeAbbreviations.FIRST_2_FINISH, [config.CHALLENGE_TYPE_ID]: challengeAbbreviations.CODE, [config.FIRST_2_FINISH_TYPE_ID]: challengeAbbreviations.FIRST_2_FINISH }, [_.toLower(challengeTracks.DESIGN)]: { - [config.TASK_TYPE_ID]: challengeAbbreviations.DESIGN_FIRST_2_FINISH, + [config.TASK_TYPE_IDS.DESIGN]: challengeAbbreviations.DESIGN_FIRST_2_FINISH, [config.CHALLENGE_TYPE_ID]: challengeAbbreviations.APPLICATION_FRONT_END_DESIGN, [config.FIRST_2_FINISH_TYPE_ID]: challengeAbbreviations.DESIGN_FIRST_2_FINISH + }, + [_.toLower(challengeTracks.QA)]: { + [config.TASK_TYPE_IDS.QA]: challengeAbbreviations.FIRST_2_FINISH + }, + [_.toLower(challengeTracks.DATA_SCIENCE)]: { + [config.TASK_TYPE_IDS.DATA_SCIENCE]: challengeAbbreviations.FIRST_2_FINISH } } diff --git a/src/services/ProcessorService.js b/src/services/ProcessorService.js index d1fe83a..72cd6ab 100644 --- a/src/services/ProcessorService.js +++ b/src/services/ProcessorService.js @@ -88,10 +88,10 @@ async function getLegacyTrackInformation (legacyTrack, typeId, m2mToken) { } // If it's a private task, set the `task` property to `true` - if (typeId === config.TASK_TYPE_ID) { - // Tasks can only be created for the develop and design tracks - if (data.track !== constants.challengeTracks.DEVELOP && data.track !== constants.challengeTracks.DESIGN) { - throw new Error(`Cannot create a task for track ${data.track}`) + if (_.values(config.TASK_TYPE_IDS).includes(typeId)) { + // Tasks can only be created for the develop and design tracks so we're setting the track for QA/DS to DEVELOP + if (data.track === constants.challengeTracks.QA || data.track !== constants.challengeTracks.DATA_SCIENCE) { + data.track = constants.challengeTracks.DEVELOP } data.task = true } @@ -353,7 +353,7 @@ async function processUpdate (message) { if (message.payload.status === constants.challengeStatuses.Completed && challenge.currentStatus !== constants.challengeStatuses.Completed) { const challengeUuid = message.payload.id const v5Challenge = await helper.getRequest(`${config.V5_CHALLENGE_API_URL}/${challengeUuid}`, m2mToken) - if (v5Challenge.body.typeId === config.TASK_TYPE_ID) { + if (_.values(config.TASK_TYPE_IDS).includes(v5Challenge.body.typeId)) { logger.info('Challenge type is TASK') if (!message.payload.winners || message.payload.winners.length === 0) { throw new Error('Cannot close challenge without winners')