From 75283dc8470edcb4ee172206bfd2ae76a7ed5295 Mon Sep 17 00:00:00 2001 From: himaniraghav3 Date: Fri, 22 Sep 2023 17:09:32 +0530 Subject: [PATCH 1/4] add JOI validation for constraint allowedRegistrants --- src/services/ChallengeService.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/services/ChallengeService.js b/src/services/ChallengeService.js index 67fb1372..b7954a3a 100644 --- a/src/services/ChallengeService.js +++ b/src/services/ChallengeService.js @@ -1165,6 +1165,7 @@ createChallenge.schema = { tags: Joi.array().items(Joi.string()), // tag names projectId: Joi.number().integer().positive(), legacyId: Joi.number().integer().positive(), + constraints: Joi.array().items(Joi.string()).min(1).optional(), startDate: Joi.date().iso(), status: Joi.string().valid([ constants.challengeStatuses.Active, @@ -1991,6 +1992,7 @@ updateChallenge.schema = { tags: Joi.array().items(Joi.string().required()).min(1), // tag names projectId: Joi.number().integer().positive(), legacyId: Joi.number().integer().positive(), + constraints: Joi.array().items(Joi.string()).min(1).optional(), status: Joi.string().valid(_.values(constants.challengeStatuses)), attachments: Joi.array().items( Joi.object().keys({ From d2b7e28532cea103dc2b606e82aa344a15b1fdd3 Mon Sep 17 00:00:00 2001 From: himaniraghav3 Date: Fri, 22 Sep 2023 17:33:45 +0530 Subject: [PATCH 2/4] final fixes --- package.json | 4 ++-- src/services/ChallengeService.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 7c028194..b992d707 100644 --- a/package.json +++ b/package.json @@ -42,8 +42,8 @@ "dependencies": { "@grpc/grpc-js": "^1.8.12", "@opensearch-project/opensearch": "^2.2.0", - "@topcoder-framework/domain-challenge": "^0.18.0", - "@topcoder-framework/lib-common": "^0.18.0", + "@topcoder-framework/domain-challenge": "^0.22.0", + "@topcoder-framework/lib-common": "^0.22.0", "aws-sdk": "^2.1145.0", "axios": "^0.19.0", "axios-retry": "^3.4.0", diff --git a/src/services/ChallengeService.js b/src/services/ChallengeService.js index b7954a3a..c6f80923 100644 --- a/src/services/ChallengeService.js +++ b/src/services/ChallengeService.js @@ -1992,7 +1992,7 @@ updateChallenge.schema = { tags: Joi.array().items(Joi.string().required()).min(1), // tag names projectId: Joi.number().integer().positive(), legacyId: Joi.number().integer().positive(), - constraints: Joi.array().items(Joi.string()).min(1).optional(), + constraints: Joi.object({allowedRegistrants: Joi.array().items(Joi.string()).optional()}), status: Joi.string().valid(_.values(constants.challengeStatuses)), attachments: Joi.array().items( Joi.object().keys({ From 2ca40f4f931fa6af4138cd6b969ebf202e4aa031 Mon Sep 17 00:00:00 2001 From: himaniraghav3 Date: Fri, 22 Sep 2023 17:40:28 +0530 Subject: [PATCH 3/4] optimized --- src/services/ChallengeService.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/services/ChallengeService.js b/src/services/ChallengeService.js index c6f80923..de63f24e 100644 --- a/src/services/ChallengeService.js +++ b/src/services/ChallengeService.js @@ -1165,7 +1165,9 @@ createChallenge.schema = { tags: Joi.array().items(Joi.string()), // tag names projectId: Joi.number().integer().positive(), legacyId: Joi.number().integer().positive(), - constraints: Joi.array().items(Joi.string()).min(1).optional(), + constraints: Joi.object().keys({ + allowedRegistrants: Joi.array().items(Joi.string()).optional() + }).optional(), startDate: Joi.date().iso(), status: Joi.string().valid([ constants.challengeStatuses.Active, @@ -1992,7 +1994,9 @@ updateChallenge.schema = { tags: Joi.array().items(Joi.string().required()).min(1), // tag names projectId: Joi.number().integer().positive(), legacyId: Joi.number().integer().positive(), - constraints: Joi.object({allowedRegistrants: Joi.array().items(Joi.string()).optional()}), + constraints: Joi.object().keys({ + allowedRegistrants: Joi.array().items(Joi.string()).optional() + }).optional(), status: Joi.string().valid(_.values(constants.challengeStatuses)), attachments: Joi.array().items( Joi.object().keys({ From 8342ab7ca146df38d2ce5a24886234cc136247bf Mon Sep 17 00:00:00 2001 From: eisbilir Date: Fri, 22 Sep 2023 17:08:13 +0300 Subject: [PATCH 4/4] update log --- src/common/helper.js | 2 +- src/phase-management/PhaseAdvancer.js | 8 ++---- yarn.lock | 40 +++++++++++++-------------- 3 files changed, 24 insertions(+), 26 deletions(-) diff --git a/src/common/helper.js b/src/common/helper.js index 724aebde..9a9612db 100644 --- a/src/common/helper.js +++ b/src/common/helper.js @@ -358,7 +358,7 @@ async function capturePayment(paymentId) { const url = `${config.CUSTOMER_PAYMENTS_URL}/${paymentId}/charge`; logger.info(`Calling: ${url} to capture payment`); const res = await axios.patch(url, {}, { headers: { Authorization: `Bearer ${token}` } }); - logger.debug(`Payment API Response: ${JSON.stringify(res.data, null, 2)}`); + logger.debug(`Payment API Response: ${JSON.stringify(res.data)}`); if (res.data.status !== "succeeded") { throw new Error(`Failed to charge payment. Current status: ${res.data.status}`); } diff --git a/src/phase-management/PhaseAdvancer.js b/src/phase-management/PhaseAdvancer.js index 530d6304..f6304e3c 100644 --- a/src/phase-management/PhaseAdvancer.js +++ b/src/phase-management/PhaseAdvancer.js @@ -212,7 +212,7 @@ class PhaseAdvancer { this.#updateSubsequentPhases(phases, phase, -delta); } - console.log(`Updated phases: ${JSON.stringify(phases, null, 2)}`); + console.log(`Updated phases: ${JSON.stringify(phases)}`); } async #close(challengeId, phases, phase) { @@ -229,7 +229,7 @@ class PhaseAdvancer { this.#updateSubsequentPhases(phases, phase, -delta); } - console.log(`Updated phases: ${JSON.stringify(phases, null, 2)}`); + console.log(`Updated phases: ${JSON.stringify(phases)}`); } #insertPhaseIfRequired(phases, phase, facts) { @@ -326,9 +326,7 @@ class PhaseAdvancer { async #hasActiveUnreviewedSubmissions(challengeId, phaseSpecificFacts, phases) { console.log( `Checking if there are active unreviewed submissions for challenge ${challengeId} using phaseSpecificFacts: ${JSON.stringify( - phaseSpecificFacts, - null, - 2 + phaseSpecificFacts )}` ); diff --git a/yarn.lock b/yarn.lock index b4b8e39a..35cef421 100644 --- a/yarn.lock +++ b/yarn.lock @@ -255,35 +255,35 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== -"@topcoder-framework/client-relational@^0.18.0": - version "0.18.0" - resolved "https://topcoder-409275337247.d.codeartifact.us-east-1.amazonaws.com/npm/topcoder-framework/@topcoder-framework/client-relational/-/client-relational-0.18.0.tgz#20175617c3ac281797d7717a157159076b2578fb" - integrity sha512-JwcKcuT6w/3ydd27+doi9dVWHtuJClXOwajVOfXfHPGFhsgswfoFZ+k4kfc2kC/fioDJ1IPKdFRTeVCxycljnA== +"@topcoder-framework/client-relational@^0.22.0": + version "0.22.0" + resolved "https://topcoder-409275337247.d.codeartifact.us-east-1.amazonaws.com/npm/topcoder-framework/@topcoder-framework/client-relational/-/client-relational-0.22.0.tgz#0e096758ffd8c9d0eb986b2f9328ed247930abfe" + integrity sha512-We0sb8pdxOZfzX8WzKxczhXl16jmZ6cN/eBgDv5jR8qpVoXhLTa2iaTLqiRYUWi9ZvHCN6vmNQ607w0IU/iRFQ== dependencies: "@grpc/grpc-js" "^1.8.0" - "@topcoder-framework/lib-common" "^0.18.0" - topcoder-interface "github:topcoder-platform/plat-interface-definition#v0.0.56-beta-1" + "@topcoder-framework/lib-common" "^0.22.0" + topcoder-interface "github:topcoder-platform/plat-interface-definition#v0.0.58-beta-1" tslib "^2.4.1" -"@topcoder-framework/domain-challenge@^0.18.0": - version "0.18.0" - resolved "https://topcoder-409275337247.d.codeartifact.us-east-1.amazonaws.com/npm/topcoder-framework/@topcoder-framework/domain-challenge/-/domain-challenge-0.18.0.tgz#505d24e14a0354c900c2d55f92335bf9c5aa8d8c" - integrity sha512-+jPNhU+ZqcTjuPBCYc2mLLTUiKVg1WTUZbaySL09iYoEQpnfhpCf/t3Z/5cnC2WuLlaHp5lR7xQP5+Iz/Hl+6g== +"@topcoder-framework/domain-challenge@^0.22.0": + version "0.22.0" + resolved "https://topcoder-409275337247.d.codeartifact.us-east-1.amazonaws.com/npm/topcoder-framework/@topcoder-framework/domain-challenge/-/domain-challenge-0.22.0.tgz#bcb7f7a602e424d9932fd0693935aa5f1f2439a4" + integrity sha512-PT2Zts56QKtntSJQxjH8slRjrYISuUGCZdYmyQcy+ak0nQL0COhQ0puqJ6mfIA9Ml3Ggi8Vmk/G9Ti12h1YNDg== dependencies: "@grpc/grpc-js" "^1.8.0" - "@topcoder-framework/client-relational" "^0.18.0" - "@topcoder-framework/lib-common" "^0.18.0" - topcoder-interface "github:topcoder-platform/plat-interface-definition#v0.0.56-beta-1" + "@topcoder-framework/client-relational" "^0.22.0" + "@topcoder-framework/lib-common" "^0.22.0" + topcoder-interface "github:topcoder-platform/plat-interface-definition#v0.0.58-beta-1" tslib "^2.4.1" -"@topcoder-framework/lib-common@^0.18.0": - version "0.18.0" - resolved "https://topcoder-409275337247.d.codeartifact.us-east-1.amazonaws.com/npm/topcoder-framework/@topcoder-framework/lib-common/-/lib-common-0.18.0.tgz#ad06f5effbebcb67472cd0c51434ae4415fd9ba1" - integrity sha512-961jxIjgQcSlMfhQCM9bi8A4yjQV88hzAhOM/SO5k40WhnsmiazWwb4+P9asoBie86Z2TpYn1cnP0hNt1IQ3DA== +"@topcoder-framework/lib-common@^0.22.0": + version "0.22.0" + resolved "https://topcoder-409275337247.d.codeartifact.us-east-1.amazonaws.com/npm/topcoder-framework/@topcoder-framework/lib-common/-/lib-common-0.22.0.tgz#bd3428b0199410a5151326d1d9731c404c255fb5" + integrity sha512-sHdOAyCGcNaDT9esc9Q3sNaqvVAwHPv6NCTlTAt5O9dcSpdz2AyEur8mS5WccFclKhF5ZB9BM1bbWxO8i9WXGQ== dependencies: "@grpc/grpc-js" "^1.8.0" rimraf "^3.0.2" - topcoder-interface "github:topcoder-platform/plat-interface-definition#v0.0.56-beta-1" + topcoder-interface "github:topcoder-platform/plat-interface-definition#v0.0.58-beta-1" tslib "^2.4.1" "@types/body-parser@*": @@ -3999,9 +3999,9 @@ topcoder-bus-api-wrapper@topcoder-platform/tc-bus-api-wrapper.git: superagent "^3.8.3" tc-core-library-js appirio-tech/tc-core-library-js.git#v2.6.4 -"topcoder-interface@github:topcoder-platform/plat-interface-definition#v0.0.56-beta-1": +"topcoder-interface@github:topcoder-platform/plat-interface-definition#v0.0.58-beta-1": version "1.0.0" - resolved "https://codeload.github.com/topcoder-platform/plat-interface-definition/tar.gz/7d743db08b113964d5cd3d52644963af7dde5ba4" + resolved "https://codeload.github.com/topcoder-platform/plat-interface-definition/tar.gz/474bcfa1d01f0f2d0a2658de21aa835f4c824c44" topo@3.x.x: version "3.0.3"