Skip to content

Commit

Permalink
feat(api): transform training.duration into string
Browse files Browse the repository at this point in the history
in training repo for creation
  • Loading branch information
dianeCdrPix committed Feb 27, 2025
1 parent 03b1517 commit 8a265b7
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,9 @@ async function findWithTriggersByCampaignParticipationIdAndLocale({ campaignPart

async function create({ training }) {
const knexConn = DomainTransaction.getConnection();
if (typeof training.duration !== 'string') {
training.duration = _transformDurationFormat(training.duration);
}
const pickedAttributes = pick(training, [
'title',
'internalTitle',
Expand Down Expand Up @@ -186,6 +189,10 @@ async function findPaginatedByUserId({ userId, locale, page }) {
return { userRecommendedTrainings, pagination };
}

function _transformDurationFormat(durationObject) {
return `${durationObject.days ?? 0}d${durationObject.hours ?? 0}h${durationObject.minutes ?? 0}m${durationObject.seconds ?? 0}s`;
}

export {
create,
findPaginatedByUserId,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -616,6 +616,33 @@ describe('Integration | Repository | training-repository', function () {
expect(createdTraining.id).to.exist;
expect(createdTraining).to.deep.include({ ...training, duration: { hours: 6 } });
});

it('should handle other duration‘s format', async function () {
// given
const training = {
title: 'Titre du training',
internalTitle: 'Titre interne du training',
link: 'https://training-link.org',
type: 'webinaire',
duration: {
hours: 5,
minutes: 30,
},
locale: 'fr',
editorName: 'Un ministère',
editorLogoUrl: 'https://mon-logo.svg',
};

// when
const createdTraining = await trainingRepository.create({
training,
});

// then
expect(createdTraining).to.be.instanceOf(TrainingForAdmin);
expect(createdTraining.id).to.exist;
expect(createdTraining).to.deep.include({ ...training, duration: { hours: 5, minutes: 30 } });
});
});

describe('#update', function () {
Expand Down

0 comments on commit 8a265b7

Please sign in to comment.