From a04e8484849e61ccd23d6895ccc678994a8672d6 Mon Sep 17 00:00:00 2001 From: Justin Gasper Date: Tue, 30 Jul 2024 08:17:54 +1000 Subject: [PATCH 1/7] Extra debugging of ES Query --- src/services/ChallengeService.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/services/ChallengeService.js b/src/services/ChallengeService.js index b1cb2250..1ebf42ca 100644 --- a/src/services/ChallengeService.js +++ b/src/services/ChallengeService.js @@ -787,6 +787,9 @@ async function searchChallenges(currentUser, criteria) { ], }, }; + + logger.info(`ES QUERY:${JSON.stringify(esQuery, null, 5)}`) + // Search with constructed query let docs; try { From aeae1a4d38161ad32a5d09e50de9d7afbbc8dc43 Mon Sep 17 00:00:00 2001 From: Justin Gasper Date: Tue, 30 Jul 2024 08:18:19 +1000 Subject: [PATCH 2/7] Deploy branch --- .circleci/config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index f6da9263..743e95a8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -87,6 +87,7 @@ workflows: only: - dev - feature/top-262-projectid-non-mandatory + - TOP-2364 - "build-qa": context: org-global From f6723a56eac286e65db5755ed52836807981b6fa Mon Sep 17 00:00:00 2001 From: Justin Gasper Date: Tue, 30 Jul 2024 08:24:00 +1000 Subject: [PATCH 3/7] Fix logging format to make this easy to copy / paste --- src/services/ChallengeService.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/ChallengeService.js b/src/services/ChallengeService.js index 1ebf42ca..db03fdb3 100644 --- a/src/services/ChallengeService.js +++ b/src/services/ChallengeService.js @@ -788,7 +788,7 @@ async function searchChallenges(currentUser, criteria) { }, }; - logger.info(`ES QUERY:${JSON.stringify(esQuery, null, 5)}`) + logger.info(`ES QUERY:${JSON.stringify(esQuery)}`); // Search with constructed query let docs; From 7040bb68253e0ffb93c1a8e94dacd2641d950a8a Mon Sep 17 00:00:00 2001 From: Justin Gasper Date: Tue, 30 Jul 2024 08:37:31 +1000 Subject: [PATCH 4/7] Remove self-service check since that is affecting Phoenix challenges --- src/services/ChallengeService.js | 83 -------------------------------- 1 file changed, 83 deletions(-) diff --git a/src/services/ChallengeService.js b/src/services/ChallengeService.js index db03fdb3..b97ffadd 100644 --- a/src/services/ChallengeService.js +++ b/src/services/ChallengeService.js @@ -153,12 +153,6 @@ async function searchChallenges(currentUser, criteria) { const _hasAdminRole = hasAdminRole(currentUser); - const includeSelfService = - currentUser && - (currentUser.isMachine || - _hasAdminRole || - _.includes(config.SELF_SERVICE_WHITELIST_HANDLES, currentUser.handle.toLowerCase())); - const includedTrackIds = _.isArray(criteria.trackIds) ? criteria.trackIds : []; const includedTypeIds = _.isArray(criteria.typeIds) ? criteria.typeIds : []; @@ -647,83 +641,6 @@ async function searchChallenges(currentUser, criteria) { }); } - if (!includeSelfService) { - mustQuery.push({ - bool: { - should: [ - { bool: { must_not: { exists: { field: "legacy.selfService" } } } }, - ...(currentUser - ? [ - { - bool: { - must: [ - { - bool: { - must_not: { - match_phrase: { - status: constants.challengeStatuses.New, - }, - }, - }, - }, - { - bool: { - must_not: { - match_phrase: { - status: constants.challengeStatuses.Draft, - }, - }, - }, - }, - { - bool: { - must_not: { - match_phrase: { - status: constants.challengeStatuses.Approved, - }, - }, - }, - }, - ], - }, - }, - { - bool: { - must: { match_phrase: { createdBy: currentUser.handle } }, - }, - }, - ] - : [ - { - bool: { - should: [ - { - bool: { - must: { - match_phrase: { - status: constants.challengeStatuses.Active, - }, - }, - }, - }, - { - bool: { - must: { - match_phrase: { - status: constants.challengeStatuses.Completed, - }, - }, - }, - }, - ], - }, - }, - ]), - ], - }, - }); - } - if (groupsQuery.length > 0) { mustQuery.push({ bool: { From 6f566978da5cbfd3a5c0e452d7575e41aac56cc2 Mon Sep 17 00:00:00 2001 From: Justin Gasper Date: Tue, 30 Jul 2024 08:57:17 +1000 Subject: [PATCH 5/7] Log error from query --- src/services/ChallengeService.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/services/ChallengeService.js b/src/services/ChallengeService.js index b97ffadd..5a9ed109 100644 --- a/src/services/ChallengeService.js +++ b/src/services/ChallengeService.js @@ -715,6 +715,7 @@ async function searchChallenges(currentUser, criteria) { ? await esClient.search(esQuery) : (await esClient.search(esQuery)).body; } catch (e) { + logger.error(JSON.stringify(e)); // Catch error when the ES is fresh and has no data docs = { hits: { From d5d7570500ff04527f49a348a1b59f1c208a6506 Mon Sep 17 00:00:00 2001 From: Justin Gasper Date: Tue, 30 Jul 2024 09:47:57 +1000 Subject: [PATCH 6/7] Fix for sorting certain fields --- src/services/ChallengeService.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/services/ChallengeService.js b/src/services/ChallengeService.js index 5a9ed109..0c55be06 100644 --- a/src/services/ChallengeService.js +++ b/src/services/ChallengeService.js @@ -457,6 +457,18 @@ async function searchChallenges(currentUser, criteria) { } let sortByProp = criteria.sortBy ? criteria.sortBy : "created"; + + // Add '.keyword' to the end of the sort by prop for certain fields + // (TOP-2364) + if(sortByProp === "updatedBy" || + sortByProp === "createdBy" || + sortByProp === "name" || + sortByProp === "type" || + sortByProp === "status") { + + sortByProp = sortByProp + ".keyword"; + } + const sortOrderProp = criteria.sortOrder ? criteria.sortOrder : "desc"; const mustQuery = []; From a7f5de49d57ed597536cedf081bff8b023263ade Mon Sep 17 00:00:00 2001 From: Justin Gasper Date: Tue, 30 Jul 2024 10:14:33 +1000 Subject: [PATCH 7/7] Remove logging of ES query --- src/services/ChallengeService.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/services/ChallengeService.js b/src/services/ChallengeService.js index 0c55be06..4036b783 100644 --- a/src/services/ChallengeService.js +++ b/src/services/ChallengeService.js @@ -460,11 +460,11 @@ async function searchChallenges(currentUser, criteria) { // Add '.keyword' to the end of the sort by prop for certain fields // (TOP-2364) - if(sortByProp === "updatedBy" || - sortByProp === "createdBy" || - sortByProp === "name" || - sortByProp === "type" || - sortByProp === "status") { + if(sortByProp == "updatedBy" || + sortByProp == "createdBy" || + sortByProp == "name" || + sortByProp == "type" || + sortByProp == "status") { sortByProp = sortByProp + ".keyword"; } @@ -717,8 +717,6 @@ async function searchChallenges(currentUser, criteria) { }, }; - logger.info(`ES QUERY:${JSON.stringify(esQuery)}`); - // Search with constructed query let docs; try {