Skip to content

Commit

Permalink
[TECH] Extract flash-certification cross-injection from shared (PIX-1…
Browse files Browse the repository at this point in the history
  • Loading branch information
pix-service-auto-merge authored Mar 13, 2024
2 parents 8116fc5 + 3f3494a commit 3e66975
Show file tree
Hide file tree
Showing 7 changed files with 44 additions and 14 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { usecases } from '../../shared/domain/usecases/index.js';
import { usecases } from '../domain/usecases/index.js';

const getActiveFlashAssessmentConfiguration = async (req, h) => {
const flashAssessmentConfiguration = await usecases.getActiveFlashAssessmentConfiguration();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import { scenarioSimulatorBatchSerializer } from '../../../../lib/infrastructure
import { random } from '../../../../lib/infrastructure/utils/random.js';
import { extractLocaleFromRequest } from '../../../../lib/infrastructure/utils/request-response-utils.js';
import { parseCsv } from '../../../../scripts/helpers/csvHelpers.js';
import { usecases } from '../../shared/domain/usecases/index.js';
import { FlashAssessmentSuccessRateHandler } from '../domain/models/FlashAssessmentSuccessRateHandler.js';
import { pickChallengeService } from '../domain/services/pick-challenge-service.js';
import { usecases } from '../domain/usecases/index.js';

async function simulateFlashAssessmentScenario(
request,
Expand Down
38 changes: 38 additions & 0 deletions api/src/certification/flash-certification/domain/usecases/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
// eslint-disable import/no-restricted-paths
import { dirname } from 'node:path';
import { fileURLToPath } from 'node:url';

import * as challengeRepository from '../../../../shared/infrastructure/repositories/challenge-repository.js';
import { injectDependencies } from '../../../../shared/infrastructure/utils/dependency-injection.js';
import { importNamedExportsFromDirectory } from '../../../../shared/infrastructure/utils/import-named-exports-from-directory.js';
import * as flashAlgorithmConfigurationRepository from '../../infrastructure/repositories/flash-algorithm-configuration-repository.js';
import * as flashAlgorithmService from '../services/algorithm-methods/flash.js';

/**
* Using {@link https://jsdoc.app/tags-type "Closure Compiler's syntax"} to document injected dependencies
*
* @typedef {challengeRepository} ChallengeRepository
* @typedef {flashAlgorithmConfigurationRepository} FlashAlgorithmConfigurationRepository
* @typedef {flashAlgorithmService} FlashAlgorithmService
*/
const dependencies = {
challengeRepository,
flashAlgorithmConfigurationRepository,
flashAlgorithmService,
};

const path = dirname(fileURLToPath(import.meta.url));

const usecasesWithoutInjectedDependencies = {
...(await importNamedExportsFromDirectory({
path,
ignoredFileNames: ['index.js'],
})),
};

const usecases = injectDependencies(usecasesWithoutInjectedDependencies, dependencies);

/**
* @typedef {dependencies} dependencies
*/
export { usecases };
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,12 @@ import { FlashAssessmentAlgorithm } from '../models/FlashAssessmentAlgorithm.js'
import { FlashAssessmentAlgorithmConfiguration } from '../models/FlashAssessmentAlgorithmConfiguration.js';

export async function simulateFlashDeterministicAssessmentScenario({
challengeRepository,
locale,
pickChallenge,
pickAnswerStatus,
stopAtChallenge,
initialCapacity,
useObsoleteChallenges,
flashAlgorithmService,
warmUpLength = 0,
forcedCompetences = [],
challengesBetweenSameCompetence = 0,
Expand All @@ -22,6 +20,8 @@ export async function simulateFlashDeterministicAssessmentScenario({
doubleMeasuresUntil = 0,
variationPercent,
variationPercentUntil,
challengeRepository,
flashAlgorithmService,
}) {
const challenges = await challengeRepository.findFlashCompatible({ locale, useObsoleteChallenges });

Expand Down
8 changes: 0 additions & 8 deletions api/src/certification/shared/domain/usecases/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@ import { injectDependencies } from '../../../../shared/infrastructure/utils/depe
import { importNamedExportsFromDirectory } from '../../../../shared/infrastructure/utils/import-named-exports-from-directory.js';
import * as certificateRepository from '../../../course/infrastructure/repositories/certificate-repository.js';
import * as v3CertificationCourseDetailsForAdministrationRepository from '../../../course/infrastructure/repositories/v3-certification-course-details-for-administration-repository.js';
import * as flashAlgorithmService from '../../../flash-certification/domain/services/algorithm-methods/flash.js';
import * as flashAlgorithmConfigurationRepository from '../../../flash-certification/infrastructure/repositories/flash-algorithm-configuration-repository.js';
import * as sessionCodeService from '../../../session/domain/services/session-code-service.js';
import * as sessionsImportValidationService from '../../../session/domain/services/sessions-import-validation-service.js';
import * as temporarySessionsStorageForMassImportService from '../../../session/domain/services/temporary-sessions-storage-for-mass-import-service.js';
Expand Down Expand Up @@ -71,7 +69,6 @@ import * as mailService from '../services/mail-service.js';
* @typedef {complementaryCertificationRepository} ComplementaryCertificationRepository
* @typedef {cpfExportRepository} CpfExportRepository
* @typedef {finalizedSessionRepository} FinalizedSessionRepository
* @typedef {flashAlgorithmService} FlashAlgorithmService
* @typedef {issueReportCategoryRepository} IssueReportCategoryRepository
* @typedef {jurySessionRepository} JurySessionRepository
* @typedef {mailService} MailService
Expand Down Expand Up @@ -109,8 +106,6 @@ const dependencies = {
competenceRepository,
complementaryCertificationRepository,
finalizedSessionRepository,
flashAlgorithmService,
flashAlgorithmConfigurationRepository,
issueReportCategoryRepository,
jurySessionRepository,
mailService,
Expand Down Expand Up @@ -144,9 +139,6 @@ const usecasesWithoutInjectedDependencies = {
'get-mass-import-template-information.js',
],
})),
...(await importNamedExportsFromDirectory({
path: join(path, '../../../flash-certification/domain/usecases/'),
})),
...(await importNamedExportsFromDirectory({
path: join(path, '../../../course/domain/usecases/'),
ignoredFileNames: ['index.js', 'update-jury-comment.js', 'get-sco-certification-results-by-division.js'],
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { flashAssessmentConfigurationController } from '../../../../../src/certification/flash-certification/application/flash-assessment-configuration-controller.js';
import { usecases } from '../../../../../src/certification/shared/domain/usecases/index.js';
import { usecases } from '../../../../../src/certification/flash-certification/domain/usecases/index.js';
import { domainBuilder, expect, hFake, sinon } from '../../../../test-helper.js';

describe('Integration | Application | FlashAssessmentConfigurationController', function () {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { pickAnswerStatusService } from '../../../../../lib/domain/services/pick
import { random } from '../../../../../lib/infrastructure/utils/random.js';
import * as moduleUnderTest from '../../../../../src/certification/flash-certification/application/scenario-simulator-route.js';
import { pickChallengeService } from '../../../../../src/certification/flash-certification/domain/services/pick-challenge-service.js';
import { usecases } from '../../../../../src/certification/shared/domain/usecases/index.js';
import { usecases } from '../../../../../src/certification/flash-certification/domain/usecases/index.js';
import { securityPreHandlers } from '../../../../../src/shared/application/security-pre-handlers.js';
import { domainBuilder, expect, HttpTestServer, parseJsonStream, sinon } from '../../../../test-helper.js';

Expand Down

0 comments on commit 3e66975

Please sign in to comment.