Skip to content

Commit

Permalink
feat(orga): moved usecase
Browse files Browse the repository at this point in the history
  • Loading branch information
alicegoarnisson committed Dec 10, 2024
1 parent 7150907 commit cdd1397
Show file tree
Hide file tree
Showing 25 changed files with 66 additions and 55 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { PoleEmploiSending } from '../../../src/shared/domain/models/PoleEmploiSending.js';
import { PoleEmploiSending } from '../../../src/prescription/campaign-participation/domain/models/PoleEmploiSending.js';
import { databaseBuffer } from '../database-buffer.js';

const buildPoleEmploiSending = ({
Expand Down
4 changes: 2 additions & 2 deletions api/lib/domain/events/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ import * as complementaryCertificationBadgesRepository from '../../../src/certif
import * as flashAlgorithmConfigurationRepository from '../../../src/certification/shared/infrastructure/repositories/flash-algorithm-configuration-repository.js';
import * as authenticationMethodRepository from '../../../src/identity-access-management/infrastructure/repositories/authentication-method.repository.js';
import * as userRepository from '../../../src/identity-access-management/infrastructure/repositories/user.repository.js';
import * as disabledPoleEmploiNotifier from '../../../src/prescription/campaign-participation/infrastructure/externals/pole-emploi/disabled-pole-emploi-notifier.js';
import * as poleEmploiNotifier from '../../../src/prescription/campaign-participation/infrastructure/externals/pole-emploi/pole-emploi-notifier.js';
import * as poleEmploiSendingRepository from '../../../src/prescription/campaign-participation/infrastructure/repositories/pole-emploi-sending-repository.js';
import { config } from '../../../src/shared/config.js';
import { monitoringTools as MonitoringTools } from '../../../src/shared/infrastructure/monitoring-tools.js';
Expand All @@ -34,8 +36,6 @@ import { logger } from '../../../src/shared/infrastructure/utils/logger.js';
import * as eventBusBuilder from '../../infrastructure/events/EventBusBuilder.js';
import { EventDispatcher } from '../../infrastructure/events/EventDispatcher.js';
import { EventDispatcherLogger } from '../../infrastructure/events/EventDispatcherLogger.js';
import * as disabledPoleEmploiNotifier from '../../infrastructure/externals/pole-emploi/disabled-pole-emploi-notifier.js';
import * as poleEmploiNotifier from '../../infrastructure/externals/pole-emploi/pole-emploi-notifier.js';
import * as badgeAcquisitionRepository from '../../infrastructure/repositories/badge-acquisition-repository.js';
import * as campaignParticipationResultRepository from '../../infrastructure/repositories/campaign-participation-result-repository.js';
import * as campaignRepository from '../../infrastructure/repositories/campaign-repository.js';
Expand Down
21 changes: 11 additions & 10 deletions api/lib/domain/usecases/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ import { organizationForAdminRepository } from '../../../src/organizational-enti
import { tagRepository } from '../../../src/organizational-entities/infrastructure/repositories/tag.repository.js';
import * as campaignManagementRepository from '../../../src/prescription/campaign/infrastructure/repositories/campaign-management-repository.js';
import * as divisionRepository from '../../../src/prescription/campaign/infrastructure/repositories/division-repository.js';
import * as disabledPoleEmploiNotifier from '../../../src/prescription/campaign-participation/infrastructure/externals/pole-emploi/disabled-pole-emploi-notifier.js';
import * as poleEmploiNotifier from '../../../src/prescription/campaign-participation/infrastructure/externals/pole-emploi/pole-emploi-notifier.js';
import * as campaignAssessmentParticipationRepository from '../../../src/prescription/campaign-participation/infrastructure/repositories/campaign-assessment-participation-repository.js';
import * as campaignAssessmentParticipationResultRepository from '../../../src/prescription/campaign-participation/infrastructure/repositories/campaign-assessment-participation-result-repository.js';
import * as campaignParticipationRepository from '../../../src/prescription/campaign-participation/infrastructure/repositories/campaign-participation-repository.js';
Expand Down Expand Up @@ -124,8 +126,6 @@ import * as mailService from '../../domain/services/mail-service.js';
import * as obfuscationService from '../../domain/services/obfuscation-service.js';
import * as passwordGenerator from '../../domain/services/password-generator.js';
import * as verifyCertificateCodeService from '../../domain/services/verify-certificate-code-service.js';
import * as disabledPoleEmploiNotifier from '../../infrastructure/externals/pole-emploi/disabled-pole-emploi-notifier.js';
import * as poleEmploiNotifier from '../../infrastructure/externals/pole-emploi/pole-emploi-notifier.js';
import * as badgeAcquisitionRepository from '../../infrastructure/repositories/badge-acquisition-repository.js';
import * as badgeForCalculationRepository from '../../infrastructure/repositories/badge-for-calculation-repository.js';
import { campaignParticipationResultRepository } from '../../infrastructure/repositories/campaign-participation-result-repository.js';
Expand Down Expand Up @@ -156,14 +156,6 @@ import * as organizationValidator from '../validators/organization-with-tags-and

const oidcAuthenticationServiceRegistry = new OidcAuthenticationServiceRegistry({ oidcProviderRepository });

function requirePoleEmploiNotifier() {
if (config.poleEmploi.pushEnabled) {
return poleEmploiNotifier;
} else {
return disabledPoleEmploiNotifier;
}
}

/**
* Using {@link https://jsdoc.app/tags-type "Closure Compiler's syntax"} to document injected dependencies
*
Expand Down Expand Up @@ -192,6 +184,15 @@ function requirePoleEmploiNotifier() {
* @typedef {assessmentRepository} AssessmentRepository
* @typedef {sessionManagementCertificationRepository} SessionManagementCertificationRepository
*/

function requirePoleEmploiNotifier() {
if (config.poleEmploi.pushEnabled) {
return poleEmploiNotifier;
} else {
return disabledPoleEmploiNotifier;
}
}

const dependencies = {
accountRecoveryDemandRepository,
certificationCompletedJobRepository,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { PoleEmploiSending } from '../../../src/shared/domain/models/PoleEmploiSending.js';
import { PoleEmploiSending } from '../../../src/prescription/campaign-participation/domain/models/PoleEmploiSending.js';
import { PoleEmploiPayload } from '../../../src/prescription/campaign-participation/infrastructure/externals/pole-emploi/PoleEmploiPayload.js';
import { logger } from '../../../src/shared/infrastructure/utils/logger.js';
import { PoleEmploiPayload } from '../../infrastructure/externals/pole-emploi/PoleEmploiPayload.js';
import * as httpErrorsHelper from '../../infrastructure/http/errors-helper.js';
import { httpAgent } from '../../infrastructure/http/http-agent.js';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { PoleEmploiSending } from '../../../src/shared/domain/models/PoleEmploiSending.js';
import { PoleEmploiSending } from '../../../src/prescription/campaign-participation/domain/models/PoleEmploiSending.js';
import { PoleEmploiPayload } from '../../../src/prescription/campaign-participation/infrastructure/externals/pole-emploi/PoleEmploiPayload.js';
import { logger } from '../../../src/shared/infrastructure/utils/logger.js';
import { PoleEmploiPayload } from '../../infrastructure/externals/pole-emploi/PoleEmploiPayload.js';
import * as httpErrorsHelper from '../../infrastructure/http/errors-helper.js';
import { httpAgent } from '../../infrastructure/http/http-agent.js';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@ import * as url from 'node:url';
import dayjs from 'dayjs';

import { disconnect, knex } from '../../db/knex-database-connection.js';
import { PoleEmploiPayload } from '../../lib/infrastructure/externals/pole-emploi/PoleEmploiPayload.js';
import * as badgeAcquisitionRepository from '../../lib/infrastructure/repositories/badge-acquisition-repository.js';
import { campaignParticipationResultRepository } from '../../lib/infrastructure/repositories/campaign-participation-result-repository.js';
import * as campaignRepository from '../../lib/infrastructure/repositories/campaign-repository.js';
import * as targetProfileRepository from '../../lib/infrastructure/repositories/target-profile-repository.js';
import * as badgeRepository from '../../src/evaluation/infrastructure/repositories/badge-repository.js';
import * as userRepository from '../../src/identity-access-management/infrastructure/repositories/user.repository.js';
import { PoleEmploiSending } from '../../src/prescription/campaign-participation/domain/models/PoleEmploiSending.js';
import { PoleEmploiPayload } from '../../src/prescription/campaign-participation/infrastructure/externals/pole-emploi/PoleEmploiPayload.js';
import * as campaignParticipationRepository from '../../src/prescription/campaign-participation/infrastructure/repositories/campaign-participation-repository.js';
import * as poleEmploiSendingRepository from '../../src/prescription/campaign-participation/infrastructure/repositories/pole-emploi-sending-repository.js';
import { CampaignParticipationStatuses } from '../../src/prescription/shared/domain/constants.js';
import { Assessment } from '../../src/shared/domain/models/Assessment.js';
import { PoleEmploiSending } from '../../src/shared/domain/models/PoleEmploiSending.js';
import * as assessmentRepository from '../../src/shared/infrastructure/repositories/assessment-repository.js';
import * as organizationRepository from '../../src/shared/infrastructure/repositories/organization-repository.js';
import { logger } from '../../src/shared/infrastructure/utils/logger.js';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { usecases } from '../../../../../lib/domain/usecases/index.js';
import { JobController } from '../../../../shared/application/jobs/job-controller.js';
import { ParticipationStartedJob } from '../../domain/models/ParticipationStartedJob.js';
import { usecases } from '../../domain/usecases/index.js';

export class ParticipationStartedJobController extends JobController {
constructor() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,14 @@ import * as compareStagesAndAcquiredStages from '../../../../evaluation/domain/s
import * as competenceEvaluationRepository from '../../../../evaluation/infrastructure/repositories/competence-evaluation-repository.js';
import * as stageAcquisitionRepository from '../../../../evaluation/infrastructure/repositories/stage-acquisition-repository.js';
import * as stageRepository from '../../../../evaluation/infrastructure/repositories/stage-repository.js';
import { config } from '../../../../shared/config.js';
import * as areaRepository from '../../../../shared/infrastructure/repositories/area-repository.js';
import * as assessmentRepository from '../../../../shared/infrastructure/repositories/assessment-repository.js';
import * as competenceRepository from '../../../../shared/infrastructure/repositories/competence-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 disabledPoleEmploiNotifier from '../../infrastructure/externals/pole-emploi/disabled-pole-emploi-notifier.js';
import * as poleEmploiNotifier from '../../infrastructure/externals/pole-emploi/pole-emploi-notifier.js';
import * as campaignAnalysisRepository from '../../infrastructure/repositories/campaign-analysis-repository.js';
import * as campaignAssessmentParticipationRepository from '../../infrastructure/repositories/campaign-assessment-participation-repository.js';
import * as campaignAssessmentParticipationResultRepository from '../../infrastructure/repositories/campaign-assessment-participation-result-repository.js';
Expand All @@ -34,6 +37,7 @@ import { participantResultsSharedRepository } from '../../infrastructure/reposit
import * as participationsForCampaignManagementRepository from '../../infrastructure/repositories/participations-for-campaign-management-repository.js';
import * as participationsForUserManagementRepository from '../../infrastructure/repositories/participations-for-user-management-repository.js';
import * as poleEmploiSendingRepository from '../../infrastructure/repositories/pole-emploi-sending-repository.js';

/**
* @typedef { import ('../../../../shared/infrastructure/repositories/area-repository.js')} AreaRepository
* @typedef { import ('../../../../shared/infrastructure/repositories/assessment-repository.js')} AssessmentRepository
Expand Down Expand Up @@ -68,6 +72,14 @@ import * as poleEmploiSendingRepository from '../../infrastructure/repositories/
* @typedef { import ('../../../../devcomp/infrastructure/repositories/tutorial-repository.js')} TutorialRepository
*/

function requirePoleEmploiNotifier() {
if (config.poleEmploi.pushEnabled) {
return poleEmploiNotifier;
} else {
return disabledPoleEmploiNotifier;
}
}

const dependencies = {
areaRepository,
assessmentRepository,
Expand Down Expand Up @@ -95,6 +107,7 @@ const dependencies = {
participationSharedJobRepository,
participationStartedJobRepository,
participantResultsSharedRepository,
poleEmploiNotifier: requirePoleEmploiNotifier(),
poleEmploiSendingRepository,
stageAcquisitionRepository,
stageCollectionRepository,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { PoleEmploiSending } from '../../../src/shared/domain/models/PoleEmploiSending.js';
import { logger } from '../../../src/shared/infrastructure/utils/logger.js';
import * as httpErrorsHelper from '../../../../../lib/infrastructure/http/errors-helper.js';
import { httpAgent } from '../../../../../lib/infrastructure/http/http-agent.js';
import { logger } from '../../../../shared/infrastructure/utils/logger.js';
import { PoleEmploiPayload } from '../../infrastructure/externals/pole-emploi/PoleEmploiPayload.js';
import * as httpErrorsHelper from '../../infrastructure/http/errors-helper.js';
import { httpAgent } from '../../infrastructure/http/http-agent.js';
import { PoleEmploiSending } from '../models/PoleEmploiSending.js';

const sendStartedParticipationResultsToPoleEmploi = async ({
campaignParticipationId,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import _ from 'lodash';

import { config } from '../../../../src/shared/config.js';
import { config } from '../../../../../shared/config.js';

const CAMPAIGN_TYPE = 'EVALUATION';
const STRUCTURE_NAME = 'Pix';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ import querystring from 'node:querystring';

import dayjs from 'dayjs';

import * as OidcIdentityProviders from '../../../../src/identity-access-management/domain/constants/oidc-identity-providers.js';
import { AuthenticationMethod } from '../../../../src/identity-access-management/domain/models/AuthenticationMethod.js';
import { config } from '../../../../src/shared/config.js';
import { UnexpectedUserAccountError } from '../../../../src/shared/domain/errors.js';
import * as OidcIdentityProviders from '../../../../../identity-access-management/domain/constants/oidc-identity-providers.js';
import { AuthenticationMethod } from '../../../../../identity-access-management/domain/models/AuthenticationMethod.js';
import { config } from '../../../../../shared/config.js';
import { UnexpectedUserAccountError } from '../../../../../shared/domain/errors.js';

const notify = async (userId, payload, dependencies) => {
const { authenticationMethodRepository, httpAgent, httpErrorsHelper, logger } = dependencies;
Expand Down
2 changes: 0 additions & 2 deletions api/src/shared/domain/models/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,6 @@ import { OrganizationMemberIdentity } from './OrganizationMemberIdentity.js';
import { OrganizationTag } from './OrganizationTag.js';
import { PartnerCertificationScoring } from './PartnerCertificationScoring.js';
import { PlacementProfile } from './PlacementProfile.js';
import { PoleEmploiSending } from './PoleEmploiSending.js';
import { ReproducibilityRate } from './ReproducibilityRate.js';
import { ScoringSimulation } from './ScoringSimulation.js';
import { ScoringSimulationContext } from './ScoringSimulationContext.js';
Expand Down Expand Up @@ -192,7 +191,6 @@ export {
OrganizationTag,
PartnerCertificationScoring,
PlacementProfile,
PoleEmploiSending,
PrivateCertificate,
Progression,
ReproducibilityRate,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { usecases } from '../../../../lib/domain/usecases/index.js';
import * as poleEmploiNotifier from '../../../../lib/infrastructure/externals/pole-emploi/pole-emploi-notifier.js';
import * as poleEmploiNotifier from '../../../../src/prescription/campaign-participation/infrastructure/externals/pole-emploi/pole-emploi-notifier.js';
import {
databaseBuilder,
expect,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { usecases } from '../../../../lib/domain/usecases/index.js';
import * as poleEmploiNotifier from '../../../../lib/infrastructure/externals/pole-emploi/pole-emploi-notifier.js';
import * as poleEmploiNotifier from '../../../../src/prescription/campaign-participation/infrastructure/externals/pole-emploi/pole-emploi-notifier.js';
import {
databaseBuilder,
expect,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ import dayjs from 'dayjs';

import { insertMissingPoleEmploiSendingFromDate } from '../../../../scripts/prod/insert-missing-pole-emploi-sending-from-date.js';
import { Tag } from '../../../../src/organizational-entities/domain/models/Tag.js';
import { PoleEmploiSending } from '../../../../src/prescription/campaign-participation/domain/models/PoleEmploiSending.js';
import { CampaignParticipationStatuses, CampaignTypes } from '../../../../src/prescription/shared/domain/constants.js';
import { Assessment } from '../../../../src/shared/domain/models/Assessment.js';
import { PoleEmploiSending } from '../../../../src/shared/domain/models/PoleEmploiSending.js';
import {
catchErr,
databaseBuilder,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { usecases } from '../../../../lib/domain/usecases/index.js';
import * as poleEmploiNotifier from '../../../../lib/infrastructure/externals/pole-emploi/pole-emploi-notifier.js';
import { usecases } from '../../../../../../src/prescription/campaign-participation/domain/usecases/index.js';
import * as poleEmploiNotifier from '../../../../../../src/prescription/campaign-participation/infrastructure/externals/pole-emploi/pole-emploi-notifier.js';
import {
databaseBuilder,
expect,
knex,
learningContentBuilder,
mockLearningContent,
sinon,
} from '../../../test-helper.js';
} from '../../../../../test-helper.js';

describe('Integration | Application | send-started-participation-results-to-pole-emploi', function () {
let campaignParticipationId, userId, responseCode;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { usecases } from '../../../../../../lib/domain/usecases/index.js';
import { ParticipationStartedJobController } from '../../../../../../src/prescription/campaign-participation/application/jobs/participation-started-job-controller.js';
import { usecases } from '../../../../../../src/prescription/campaign-participation/domain/usecases/index.js';
import { expect, sinon } from '../../../../../test-helper.js';

describe('Unit | Application | Controller | Jobs | participation-started-controller', function () {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { PoleEmploiSending } from '../../../../src/shared/domain/models/PoleEmploiSending.js';
import { domainBuilder, expect } from '../../../test-helper.js';

import { PoleEmploiSending } from '../../../../../../src/prescription/campaign-participation/domain/models/PoleEmploiSending.js';
import { domainBuilder, expect } from '../../../../../test-helper.js';
describe('Unit | Domain | Models | PoleEmploiSending', function () {
let expectedPoleEmploiSending;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { PoleEmploiPayload } from '../../../../../lib/infrastructure/externals/pole-emploi/PoleEmploiPayload.js';
import { config } from '../../../../../src/shared/config.js';
import { domainBuilder, expect } from '../../../../test-helper.js';
import { PoleEmploiPayload } from '../../../../../../../src/prescription/campaign-participation/infrastructure/externals/pole-emploi/PoleEmploiPayload.js';
import { config } from '../../../../../../../src/shared/config.js';
import { domainBuilder, expect } from '../../../../../../test-helper.js';

describe('Unit | Infrastructure | Externals | Pole-Emploi | PoleEmploiPayload', function () {
let user;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { notify } from '../../../../../lib/infrastructure/externals/pole-emploi/disabled-pole-emploi-notifier.js';
import { expect } from '../../../../test-helper.js';
import { notify } from '../../../../../../../src/prescription/campaign-participation/infrastructure/externals/pole-emploi/disabled-pole-emploi-notifier.js';
import { expect } from '../../../../../../test-helper.js';

describe('Unit | Infrastructure | Externals/Pole-Emploi | pole-emploi-notifier', function () {
describe('#notify', function () {
Expand Down
Loading

0 comments on commit cdd1397

Please sign in to comment.