From db93cc32c7c6085bddb6fe86f692cc8a29f4cc63 Mon Sep 17 00:00:00 2001 From: Xavier Carron <33637571+xav-car@users.noreply.github.com> Date: Thu, 6 Mar 2025 17:50:43 +0100 Subject: [PATCH] feat(api): build progression when needed --- .../get-campaign-assessment-participation.js | 2 ++ ...ign-assessment-participation-repository.js | 19 +++++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/api/src/prescription/campaign-participation/domain/usecases/get-campaign-assessment-participation.js b/api/src/prescription/campaign-participation/domain/usecases/get-campaign-assessment-participation.js index bdf34d35d2b..5b924966a27 100644 --- a/api/src/prescription/campaign-participation/domain/usecases/get-campaign-assessment-participation.js +++ b/api/src/prescription/campaign-participation/domain/usecases/get-campaign-assessment-participation.js @@ -14,10 +14,12 @@ const getCampaignAssessmentParticipation = withTransaction(async function ({ throw new UserNotAuthorizedToAccessEntityError('User does not belong to the organization that owns the campaign'); } + const campaign = await campaignRepository.get(campaignId); const campaignAssessmentParticipation = await campaignAssessmentParticipationRepository.getByCampaignIdAndCampaignParticipationId({ campaignId, campaignParticipationId, + buildProgression: campaign.isTypeAssessment, }); const acquiredBadgesByCampaignParticipations = diff --git a/api/src/prescription/campaign-participation/infrastructure/repositories/campaign-assessment-participation-repository.js b/api/src/prescription/campaign-participation/infrastructure/repositories/campaign-assessment-participation-repository.js index c0d9cdd21c3..083afd6288a 100644 --- a/api/src/prescription/campaign-participation/infrastructure/repositories/campaign-assessment-participation-repository.js +++ b/api/src/prescription/campaign-participation/infrastructure/repositories/campaign-assessment-participation-repository.js @@ -8,10 +8,14 @@ import * as knowledgeElementRepository from '../../../../shared/infrastructure/r import * as campaignRepository from '../../../campaign/infrastructure/repositories/campaign-repository.js'; import { CampaignAssessmentParticipation } from '../../domain/models/CampaignAssessmentParticipation.js'; -const getByCampaignIdAndCampaignParticipationId = async function ({ campaignId, campaignParticipationId }) { +const getByCampaignIdAndCampaignParticipationId = async function ({ + campaignId, + campaignParticipationId, + buildProgression, +}) { const result = await _fetchCampaignAssessmentAttributesFromCampaignParticipation(campaignId, campaignParticipationId); - return _buildCampaignAssessmentParticipation(result); + return _buildCampaignAssessmentParticipation(result, buildProgression); }; export { getByCampaignIdAndCampaignParticipationId }; @@ -66,8 +70,15 @@ function _assessmentRankByCreationDate() { ]); } -async function _buildCampaignAssessmentParticipation(result) { - const { targetedSkillsCount, testedSkillsCount } = await _setSkillsCount(result); +async function _buildCampaignAssessmentParticipation(result, buildProgression) { + let targetedSkillsCount, + testedSkillsCount = null; + + if (buildProgression) { + const userSkills = await _setSkillsCount(result); + targetedSkillsCount = userSkills.targetedSkillsCount; + testedSkillsCount = userSkills.testedSkillsCount; + } return new CampaignAssessmentParticipation({ ...result,