diff --git a/packages/reva-api/modules/referential/features/getCompetenceBlocsByCertificationIdV2.ts b/packages/reva-api/modules/referential/features/getCompetenceBlocsByCertificationIdV2.ts new file mode 100644 index 000000000..89486b5fb --- /dev/null +++ b/packages/reva-api/modules/referential/features/getCompetenceBlocsByCertificationIdV2.ts @@ -0,0 +1,13 @@ +import { prismaClient } from "../../../prisma/client"; + +export const getCompetenceBlocsByCertificationIdV2 = async ({ + certificationId, +}: { + certificationId: string; +}) => + prismaClient.certificationCompetenceBloc.findMany({ + where: { + certificationId, + }, + orderBy: [{ code: "asc" }, { label: "asc" }], + }); diff --git a/packages/reva-api/modules/referential/referential.resolvers.ts b/packages/reva-api/modules/referential/referential.resolvers.ts index 6aac45aa9..414d5fd42 100644 --- a/packages/reva-api/modules/referential/referential.resolvers.ts +++ b/packages/reva-api/modules/referential/referential.resolvers.ts @@ -42,6 +42,8 @@ import { getCertificationCompetenceBlocById } from "./features/getCertificationC import { updateCertificationCompetenceBloc } from "./features/updateCertificationCompetenceBloc"; import { addCertification } from "./features/addCertification"; import { deleteCertificationCompetenceBloc } from "./features/deleteCertificationCompetenceBloc"; +import { isFeatureActiveForUser } from "../feature-flipping/feature-flipping.features"; +import { getCompetenceBlocsByCertificationIdV2 } from "./features/getCompetenceBlocsByCertificationIdV2"; const unsafeReferentialResolvers = { Certification: { @@ -52,13 +54,23 @@ const unsafeReferentialResolvers = { degree: ({ level }: { level: number }) => getDegreeByLevel({ level }), conventionsCollectives: ({ id: certificationId }: { id: string }) => getConventionsCollectivesByCertificationId({ certificationId }), - competenceBlocs: ({ - id: certificationId, - rncpId, - }: { - id: string; - rncpId: string; - }) => getCompetenceBlocsByCertificationId({ certificationId, rncpId }), + competenceBlocs: async ( + { + id: certificationId, + rncpId, + }: { + id: string; + rncpId: string; + }, + _payload: unknown, + { auth: { userInfo } }: GraphqlContext, + ) => + (await isFeatureActiveForUser({ + feature: "ANNUAIRE_CERTIFICATIONS_V2", + userKeycloakId: userInfo?.sub, + })) + ? getCompetenceBlocsByCertificationIdV2({ certificationId }) + : getCompetenceBlocsByCertificationId({ certificationId, rncpId }), }, CertificationCompetenceBloc: { competences: ({ id: certificationCompetenceBlocId }: { id: string }) =>