Skip to content

Commit

Permalink
WIP condition WTF
Browse files Browse the repository at this point in the history
  • Loading branch information
xav-car committed Feb 5, 2025
1 parent 91a77db commit 698c36c
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 11 deletions.
11 changes: 5 additions & 6 deletions api/src/quest/domain/models/Quest.js
Original file line number Diff line number Diff line change
@@ -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',
Expand 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;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ export const getQuestResultsForCampaignParticipation = async ({
questRepository,
eligibilityRepository,
rewardRepository,
}) => {
}) => {
const quests = await questRepository.findAll();

if (quests.length === 0) {
Expand All @@ -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) {
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down

0 comments on commit 698c36c

Please sign in to comment.