From 8a5e76e55b13c94e842c1b5194a043ada9b3ff7c Mon Sep 17 00:00:00 2001 From: Marios Kranitsas Date: Wed, 27 Jul 2022 14:34:12 +0300 Subject: [PATCH 1/2] support a checkIfExists query parameter --- src/controllers/ChallengeController.js | 2 +- src/services/ChallengeService.js | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/controllers/ChallengeController.js b/src/controllers/ChallengeController.js index 5c715c92..acbd45c2 100644 --- a/src/controllers/ChallengeController.js +++ b/src/controllers/ChallengeController.js @@ -54,7 +54,7 @@ async function sendNotifications (req, res) { * @param {Object} res the response */ async function getChallenge (req, res) { - const result = await service.getChallenge(req.authUser, req.params.challengeId) + const result = await service.getChallenge(req.authUser, req.params.challengeId, req.query.checkIfExists) res.send(result) } diff --git a/src/services/ChallengeService.js b/src/services/ChallengeService.js index 49d42439..3cf0e5b4 100644 --- a/src/services/ChallengeService.js +++ b/src/services/ChallengeService.js @@ -1245,9 +1245,10 @@ async function getPhasesAndPopulate (data) { * Get challenge. * @param {Object} currentUser the user who perform operation * @param {String} id the challenge id + * @param {String} legacyId the legacy id * @returns {Object} the challenge with given id */ -async function getChallenge (currentUser, id) { +async function getChallenge (currentUser, id, checkIfExists) { const span = await logger.startSpan('ChallengeService.getChallenge') // get challenge from Elasticsearch let challenge @@ -1272,6 +1273,10 @@ async function getChallenge (currentUser, id) { throw e } } + if (checkIfExists) { + return _.pick(challenge, ['id', 'legacuId']) + } + await helper.ensureUserCanViewChallenge(currentUser, challenge) // // FIXME: Temporarily hard coded as the migrad @@ -1318,7 +1323,8 @@ async function getChallenge (currentUser, id) { getChallenge.schema = { currentUser: Joi.any(), - id: Joi.id() + id: Joi.id(), + checkIfExists: Joi.boolean() } /** From fc0b7cd20a4922b32bfb13579de6bac8bb5ed969 Mon Sep 17 00:00:00 2001 From: Thomas Kranitsas Date: Fri, 5 Aug 2022 13:08:14 +0300 Subject: [PATCH 2/2] fix typos --- src/services/ChallengeService.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/services/ChallengeService.js b/src/services/ChallengeService.js index 3cf0e5b4..56eff160 100644 --- a/src/services/ChallengeService.js +++ b/src/services/ChallengeService.js @@ -1245,7 +1245,7 @@ async function getPhasesAndPopulate (data) { * Get challenge. * @param {Object} currentUser the user who perform operation * @param {String} id the challenge id - * @param {String} legacyId the legacy id + * @param {Boolean} checkIfExists flag to check if challenge exists * @returns {Object} the challenge with given id */ async function getChallenge (currentUser, id, checkIfExists) { @@ -1274,7 +1274,7 @@ async function getChallenge (currentUser, id, checkIfExists) { } } if (checkIfExists) { - return _.pick(challenge, ['id', 'legacuId']) + return _.pick(challenge, ['id', 'legacyId']) } await helper.ensureUserCanViewChallenge(currentUser, challenge)