Skip to content

Commit

Permalink
feat(api): retrieve all competences
Browse files Browse the repository at this point in the history
  • Loading branch information
alexandrecoin authored Dec 30, 2024
1 parent d062ac8 commit c108df7
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,32 @@ import { NotFoundError } from '../../../shared/domain/errors.js';
import { CertificationResult } from '../../domain/read-models/CertificationResult.js';

const get = async ({ ine }) => {
const certificationResultDto = await datamartKnex('data_export_parcoursup_certif_result')
.where({ national_student_id: ine })
.limit(1)
.first();
if (!certificationResultDto) {
const certificationResultDto = await datamartKnex('data_export_parcoursup_certif_result').where({
national_student_id: ine,
});
if (!certificationResultDto.length) {
throw new NotFoundError('No certifications found for given INE');
}

return _toDomain(certificationResultDto);
};

const _toDomain = (certificationResultDto) => {
return new CertificationResult({
ine: certificationResultDto.national_student_id,
organizationUai: certificationResultDto.organization_uai,
lastName: certificationResultDto.last_name,
firstName: certificationResultDto.first_name,
birthdate: certificationResultDto.birthdate,
status: certificationResultDto.status,
pixScore: certificationResultDto.pix_score,
certificationDate: certificationResultDto.certification_date,
competences: [
{
ine: certificationResultDto[0].national_student_id,
organizationUai: certificationResultDto[0].organization_uai,
lastName: certificationResultDto[0].last_name,
firstName: certificationResultDto[0].first_name,
birthdate: certificationResultDto[0].birthdate,
status: certificationResultDto[0].status,
pixScore: certificationResultDto[0].pix_score,
certificationDate: certificationResultDto[0].certification_date,
competences: certificationResultDto.map((certificationResultDto) => {
return {
id: certificationResultDto.competence_id,
level: certificationResultDto.competence_level,
},
],
};
}),
});
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ describe('Parcoursup | Acceptance | Application | certification-route', function
it('should return 200 HTTP status code and a certification for a given INE', async function () {
// given
const ine = '123456789OK';
datamartBuilder.factory.buildCertificationResult({
const certificationResultData = {
nationalStudentId: ine,
organizationUai: 'UAI ETAB ELEVE',
lastName: 'NOM-ELEVE',
Expand All @@ -30,9 +30,17 @@ describe('Parcoursup | Acceptance | Application | certification-route', function
status: 'validated',
pixScore: 327,
certificationDate: '2024-11-22T09:39:54Z',
};
datamartBuilder.factory.buildCertificationResult({
...certificationResultData,
competenceId: 'xzef1223443',
competenceLevel: 3,
});
datamartBuilder.factory.buildCertificationResult({
...certificationResultData,
competenceId: 'otherCompetenceId',
competenceLevel: 5,
});
await datamartBuilder.commit();

const options = {
Expand Down Expand Up @@ -64,6 +72,10 @@ describe('Parcoursup | Acceptance | Application | certification-route', function
id: 'xzef1223443',
level: 3,
},
{
id: 'otherCompetenceId',
level: 5,
},
],
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ describe('Parcoursup | Infrastructure | Integration | Repositories | certificati
it('should return the certification', async function () {
// given
const ine = '1234';
datamartBuilder.factory.buildCertificationResult({
const certificationResultData = {
nationalStudentId: ine,
organizationUai: 'UAI ETAB ELEVE',
lastName: 'NOM-ELEVE',
Expand All @@ -17,9 +17,17 @@ describe('Parcoursup | Infrastructure | Integration | Repositories | certificati
status: 'validated',
pixScore: 327,
certificationDate: '2024-11-22T09:39:54',
};
datamartBuilder.factory.buildCertificationResult({
...certificationResultData,
competenceId: 'xzef1223443',
competenceLevel: 3,
});
datamartBuilder.factory.buildCertificationResult({
...certificationResultData,
competenceId: 'otherCompetenceId',
competenceLevel: 5,
});
await datamartBuilder.commit();

// when
Expand All @@ -40,6 +48,10 @@ describe('Parcoursup | Infrastructure | Integration | Repositories | certificati
id: 'xzef1223443',
level: 3,
},
{
id: 'otherCompetenceId',
level: 5,
},
],
});
expect(result).to.deep.equal(expectedCertification);
Expand Down

0 comments on commit c108df7

Please sign in to comment.