From 698c36c5f569337ac6f0a9406d13d2d2373bf5e6 Mon Sep 17 00:00:00 2001 From: Xavier Carron <33637571+xav-car@users.noreply.github.com> Date: Wed, 5 Feb 2025 17:26:19 +0100 Subject: [PATCH] WIP condition WTF --- api/src/quest/domain/models/Quest.js | 11 +++++------ .../get-quest-results-for-campaign-participation.js | 7 +++---- .../integration/domain/usecases/reward-user_test.js | 2 +- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/api/src/quest/domain/models/Quest.js b/api/src/quest/domain/models/Quest.js index 4fcaf17e934..424ddb1fb11 100644 --- a/api/src/quest/domain/models/Quest.js +++ b/api/src/quest/domain/models/Quest.js @@ -1,5 +1,5 @@ import { KnowledgeElement } from '../../../shared/domain/models/index.js'; -import { TYPES as ELIGIBILITY_TYPES } from "./Eligibility.js"; +import { TYPES as ELIGIBILITY_TYPES } from './Eligibility.js'; export const COMPARISON = { ALL: 'all', @@ -21,23 +21,22 @@ class Quest { * @param {number} campaignParticipationId */ isGrantedWithParticipationId({ eligibility, campaignParticipationId }) { - console.log('eligibility', JSON.stringify(eligibility, undefined, 2)); const criteria = this.eligibilityRequirements.filter( (eligibilityRequirement) => eligibilityRequirement.type === ELIGIBILITY_TYPES.CAMPAIGN_PARTICIPATIONS, ); + + if (criteria.length === 0) return true; + const campaignParticipation = eligibility.campaignParticipations.find( (campaignParticipation) => campaignParticipation.id === campaignParticipationId, ); - console.log('campaignParticipation', JSON.stringify(campaignParticipation, undefined, 2)); for (const criterion of criteria) { - console.log('criterion', JSON.stringify(criterion, undefined, 2)); const alterKey = criterion.data.targetProfileIds !== undefined ? 'targetProfileIds' : 'targetProfileId'; - console.log({ alterKey }); + const isQuestRelatedToCampaignParticipationId = criterion.data[alterKey].includes( campaignParticipation.targetProfileId, ); - console.log(isQuestRelatedToCampaignParticipationId); if (isQuestRelatedToCampaignParticipationId) return true; } diff --git a/api/src/quest/domain/usecases/get-quest-results-for-campaign-participation.js b/api/src/quest/domain/usecases/get-quest-results-for-campaign-participation.js index 75b71f3686d..3c9c7aa1f77 100644 --- a/api/src/quest/domain/usecases/get-quest-results-for-campaign-participation.js +++ b/api/src/quest/domain/usecases/get-quest-results-for-campaign-participation.js @@ -6,7 +6,7 @@ export const getQuestResultsForCampaignParticipation = async ({ questRepository, eligibilityRepository, rewardRepository, - }) => { +}) => { const quests = await questRepository.findAll(); if (quests.length === 0) { @@ -20,10 +20,9 @@ export const getQuestResultsForCampaignParticipation = async ({ (eligibility) => eligibility.organizationLearner.id === campaignParticipation.organizationLearnerId, ); - const questsRelatedToCampaignParticipation = quests.filter((q) => - q.isGrantedWithParticipationId({ eligibility, campaignParticipationId }), + const questsRelatedToCampaignParticipation = quests.filter( + (q) => q.isGrantedWithParticipationId({ eligibility, campaignParticipationId }) && q.isEligible(eligibility), ); - console.log({ questsRelatedToCampaignParticipation }); const questResults = []; for (const quest of questsRelatedToCampaignParticipation) { diff --git a/api/tests/quest/integration/domain/usecases/reward-user_test.js b/api/tests/quest/integration/domain/usecases/reward-user_test.js index 3439a7a8db4..8f92b4a5fa1 100644 --- a/api/tests/quest/integration/domain/usecases/reward-user_test.js +++ b/api/tests/quest/integration/domain/usecases/reward-user_test.js @@ -1,9 +1,9 @@ import { PROFILE_REWARDS_TABLE_NAME } from '../../../../../db/migrations/20240820101213_add-profile-rewards-table.js'; +import { TYPES } from '../../../../../src/quest/domain/models/Eligibility.js'; import { COMPARISON } from '../../../../../src/quest/domain/models/Quest.js'; import { usecases } from '../../../../../src/quest/domain/usecases/index.js'; import { KnowledgeElement } from '../../../../../src/shared/domain/models/index.js'; import { databaseBuilder, expect, knex } from '../../../../test-helper.js'; -import { TYPES } from "../../../../../src/quest/domain/models/Eligibility.js"; const { INVALIDATED, VALIDATED } = KnowledgeElement.StatusType; const userId = 1234;