Skip to content

Commit

Permalink
refactor: déplacer les routes et les commandes Milo
Browse files Browse the repository at this point in the history
  • Loading branch information
Mzem committed Dec 11, 2023
1 parent adf51f6 commit c548d3c
Show file tree
Hide file tree
Showing 21 changed files with 410 additions and 410 deletions.
16 changes: 8 additions & 8 deletions src/app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import { CreateActionCommandHandler } from './application/commands/action/create
import { CreateEvenementCommandHandler } from './application/commands/create-evenement.command.handler'
import { CreateRechercheCommandHandler } from './application/commands/create-recherche.command.handler'
import { CreateRendezVousCommandHandler } from './application/commands/create-rendez-vous.command.handler'
import { CreerJeuneMiloCommandHandler } from './application/commands/creer-jeune-milo.command.handler'
import { CreerJeuneMiloCommandHandler } from './application/commands/milo/creer-jeune-milo.command.handler'
import { CreerJeunePoleEmploiCommandHandler } from './application/commands/creer-jeune-pole-emploi.command.handler'
import { CreerSuperviseursCommandHandler } from './application/commands/creer-superviseurs.command.handler'
import { DeleteActionCommandHandler } from './application/commands/action/delete-action.command.handler'
Expand Down Expand Up @@ -67,7 +67,7 @@ import { GetDetailOffreEmploiQueryHandler } from './application/queries/get-deta
import { GetDetailOffreImmersionQueryHandler } from './application/queries/get-detail-offre-immersion.query.handler'
import { GetDetailRendezVousQueryHandler } from './application/queries/rendez-vous/get-detail-rendez-vous.query.handler.db'
import { GetDetailOffreServiceCiviqueQueryHandler } from './application/queries/get-detail-offre-service-civique.query.handler'
import { GetDossierMiloJeuneQueryHandler } from './application/queries/get-dossier-milo-jeune.query.handler'
import { GetDossierMiloJeuneQueryHandler } from './application/queries/milo/get-dossier-milo-jeune.query.handler'
import { GetFavorisOffresEmploiJeuneQueryHandler } from './application/queries/get-favoris-offres-emploi-jeune.query.handler.db'
import { GetFavorisOffresImmersionJeuneQueryHandler } from './application/queries/get-favoris-offres-immersion-jeune.query.handler.db'
import { GetHomeJeuneHandler } from './application/queries/get-home-jeune.query.handler'
Expand Down Expand Up @@ -187,7 +187,7 @@ import {
} from './infrastructure/clients/pole-emploi-partenaire-client'
import { GetDemarchesQueryHandler } from './application/queries/get-demarches.query.handler'
import { GetCatalogueDemarchesQueryHandler } from './application/queries/get-catalogue-demarches.query.handler'
import { GetJeuneMiloByDossierQueryHandler } from './application/queries/get-jeune-milo-by-dossier.query.handler.db'
import { GetJeuneMiloByDossierQueryHandler } from './application/queries/milo/get-jeune-milo-by-dossier.query.handler.db'
import { UpdateRendezVousCommandHandler } from './application/commands/update-rendez-vous.command.handler'
import { InvitationIcsClient } from './infrastructure/clients/invitation-ics.client'
import { Mail, MailRepositoryToken, MailServiceToken } from './domain/mail'
Expand Down Expand Up @@ -237,7 +237,7 @@ import { GetCommentairesActionQueryHandler } from './application/queries/action/
import { GetJeuneHomeAgendaQueryHandler } from './application/queries/get-jeune-home-agenda.query.handler.db'
import { JeunePoleEmploiSqlRepository } from './infrastructure/repositories/jeune/jeune-pole-emploi-sql.repository.db'
import { GetTypesQualificationsQueryHandler } from './application/queries/action/get-types-qualifications.query.handler'
import { ActionMiloHttpRepository } from './infrastructure/repositories/action/action-milo-http-sql.repository'
import { ActionMiloHttpRepository } from './infrastructure/repositories/milo/action.milo.repository'
import { QualifierActionCommandHandler } from './application/commands/action/qualifier-action.command.handler'
import { GetSuiviSemainePoleEmploiQueryHandler } from './application/queries/get-suivi-semaine-pole-emploi.query.handler'
import { GetDemarchesQueryGetter } from './application/queries/query-getters/pole-emploi/get-demarches.query.getter'
Expand Down Expand Up @@ -301,7 +301,7 @@ import { DiagorienteController } from './infrastructure/routes/diagoriente.contr
import { GetDiagorienteUrlsQueryHandler } from './application/queries/get-diagoriente-urls.query.handler'
import { ArchiverJeuneSupportCommandHandler } from './application/commands/support/archiver-jeune-support.command.handler'
import { GetDiagorienteMetiersFavorisQueryHandler } from './application/queries/get-diagoriente-metiers-favoris.query.handler'
import { EnvoyerFormulaireContactImmersionCommandHandler } from './application/commands/immersion/envoyer-formulaire-contact-immersion.command.handler'
import { EnvoyerFormulaireContactImmersionCommandHandler } from './application/commands/immersion/envoyer-formulaire-contact-immersion.command.handler.db'
import { GetAccueilJeuneMiloQueryHandler } from './application/queries/accueil/get-accueil-jeune-milo.query.handler.db'
import { GetAccueilJeunePoleEmploiQueryHandler } from './application/queries/accueil/get-accueil-jeune-pole-emploi.query.handler.db'
import { JeunesPoleEmploiController } from './infrastructure/routes/jeunes.pole-emploi.controller'
Expand Down Expand Up @@ -344,7 +344,7 @@ import { HandleJobGenererJDDCommandHandler } from './application/jobs/generer-jd
import { MajSegmentsJobHandler } from './application/jobs/maj-segments.job.handler.db'
import { GetDetailSessionJeuneMiloQueryHandler } from 'src/application/queries/milo/get-detail-session-jeune.milo.query.handler.db'
import { GetSessionsJeuneMiloQueryGetter } from 'src/application/queries/query-getters/milo/get-sessions-jeune.milo.query.getter.db'
import { EmargementSessionMiloCommandHandler } from 'src/application/commands/milo/emargement-session-milo.command.handler'
import { EmargerSessionMiloCommandHandler } from 'src/application/commands/milo/emarger-session-milo.command.handler'
import { GetSessionsConseillerMiloQueryGetter } from './application/queries/query-getters/milo/get-sessions-conseiller.milo.query.getter.db'
import { ConseillerInterStructureMiloAuthorizer } from './application/authorizers/conseiller-inter-structure-milo-authorizer'
import { GetAgendaSessionsConseillerMiloQueryHandler } from 'src/application/queries/milo/get-agenda-sessions-conseiller.milo.query.handler.db'
Expand Down Expand Up @@ -377,9 +377,9 @@ export const buildModuleMetadata = (): ModuleMetadata => ({
// De base
ActionsController,
JeunesController,
JeunesControllerV2,
JeunesMiloController,
JeunesPoleEmploiController,
JeunesControllerV2,
ConseillersController,
ConseillersControllerV2,
ConseillersMiloController,
Expand Down Expand Up @@ -778,7 +778,7 @@ export function buildQueryCommandsProviders(): Provider[] {
GetDetailSessionConseillerMiloQueryHandler,
GetDetailSessionJeuneMiloQueryHandler,
UpdateSessionMiloCommandHandler,
EmargementSessionMiloCommandHandler,
EmargerSessionMiloCommandHandler,
EvenementEmploiCodePostalQueryGetter,
GetCatalogueDemarchesQueryHandler
]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,36 +1,36 @@
import { Inject, Injectable } from '@nestjs/common'
import { Command } from '../../building-blocks/types/command'
import { CommandHandler } from '../../building-blocks/types/command-handler'
import { Command } from '../../../building-blocks/types/command'
import { CommandHandler } from '../../../building-blocks/types/command-handler'
import {
DossierExisteDejaError,
EmailExisteDejaError,
MauvaiseCommandeError,
NonTrouveError
} from '../../building-blocks/types/domain-error'
} from '../../../building-blocks/types/domain-error'
import {
Result,
failure,
isFailure,
isSuccess,
success
} from '../../building-blocks/types/result'
} from '../../../building-blocks/types/result'
import {
Authentification,
AuthentificationRepositoryToken
} from '../../domain/authentification'
import { Chat, ChatRepositoryToken } from '../../domain/chat'
} from '../../../domain/authentification'
import { Chat, ChatRepositoryToken } from '../../../domain/chat'
import {
Conseiller,
ConseillersRepositoryToken
} from '../../domain/conseiller/conseiller'
import { Core, estMilo } from '../../domain/core'
import { Jeune, JeunesRepositoryToken } from '../../domain/jeune/jeune'
} from '../../../domain/conseiller/conseiller'
import { Core, estMilo } from '../../../domain/core'
import { Jeune, JeunesRepositoryToken } from '../../../domain/jeune/jeune'
import {
JeuneMilo,
MiloJeuneRepositoryToken
} from '../../domain/milo/jeune.milo'
import { ConseillerAuthorizer } from '../authorizers/conseiller-authorizer'
import { IdentiteJeuneQueryModel } from '../queries/query-models/jeunes.query-model'
} from '../../../domain/milo/jeune.milo'
import { ConseillerAuthorizer } from '../../authorizers/conseiller-authorizer'
import { IdentiteJeuneQueryModel } from '../../queries/query-models/jeunes.query-model'

export interface CreerJeuneMiloCommand extends Command {
idPartenaire: string
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,16 @@ import { Conseiller } from '../../../domain/conseiller/conseiller'
import { KeycloakClient } from '../../../infrastructure/clients/keycloak-client'
import { DateService } from 'src/utils/date-service'

export interface EmargementSessionMiloCommand extends Command {
export interface EmargerSessionMiloCommand extends Command {
idSession: string
idConseiller: string
accessToken: string
emargements: SessionMilo.Modification.Emargement[]
}

@Injectable()
export class EmargementSessionMiloCommandHandler extends CommandHandler<
EmargementSessionMiloCommand,
export class EmargerSessionMiloCommandHandler extends CommandHandler<
EmargerSessionMiloCommand,
void
> {
constructor(
Expand All @@ -42,7 +42,7 @@ export class EmargementSessionMiloCommandHandler extends CommandHandler<
super('UpdateSessionMiloCommandHandler')
}

async handle(command: EmargementSessionMiloCommand): Promise<Result> {
async handle(command: EmargerSessionMiloCommand): Promise<Result> {
const conseillerMiloResult = await this.conseillerMiloRepository.get(
command.idConseiller
)
Expand Down Expand Up @@ -84,7 +84,7 @@ export class EmargementSessionMiloCommandHandler extends CommandHandler<
}

async authorize(
command: EmargementSessionMiloCommand,
command: EmargerSessionMiloCommand,
utilisateur: Authentification.Utilisateur
): Promise<Result> {
return this.conseillerAuthorizer.autoriserLeConseiller(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import { Inject, Injectable } from '@nestjs/common'
import { Query } from '../../building-blocks/types/query'
import { QueryHandler } from '../../building-blocks/types/query-handler'
import { Result } from '../../building-blocks/types/result'
import { Authentification } from '../../domain/authentification'
import { estMilo } from '../../domain/core'
import { Query } from '../../../building-blocks/types/query'
import { QueryHandler } from '../../../building-blocks/types/query-handler'
import { Result } from '../../../building-blocks/types/result'
import { Authentification } from '../../../domain/authentification'
import { estMilo } from '../../../domain/core'
import {
JeuneMilo,
MiloJeuneRepositoryToken
} from '../../domain/milo/jeune.milo'
import { ConseillerAuthorizer } from '../authorizers/conseiller-authorizer'
import { DossierJeuneMiloQueryModel } from './query-models/milo.query-model'
} from '../../../domain/milo/jeune.milo'
import { ConseillerAuthorizer } from '../../authorizers/conseiller-authorizer'
import { DossierJeuneMiloQueryModel } from '../query-models/milo.query-model'

export interface GetDossierMiloJeuneQuery extends Query {
idDossier: string
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { Injectable } from '@nestjs/common'
import { NonTrouveError } from '../../building-blocks/types/domain-error'
import { Query } from '../../building-blocks/types/query'
import { QueryHandler } from '../../building-blocks/types/query-handler'
import { Result, failure, success } from '../../building-blocks/types/result'
import { Authentification } from '../../domain/authentification'
import { estMilo } from '../../domain/core'
import { JeuneSqlModel } from '../../infrastructure/sequelize/models/jeune.sql-model'
import { ConseillerAuthorizer } from '../authorizers/conseiller-authorizer'
import { JeuneQueryModel } from './query-models/jeunes.query-model'
import { NonTrouveError } from '../../../building-blocks/types/domain-error'
import { Query } from '../../../building-blocks/types/query'
import { QueryHandler } from '../../../building-blocks/types/query-handler'
import { Result, failure, success } from '../../../building-blocks/types/result'
import { Authentification } from '../../../domain/authentification'
import { estMilo } from '../../../domain/core'
import { JeuneSqlModel } from '../../../infrastructure/sequelize/models/jeune.sql-model'
import { ConseillerAuthorizer } from '../../authorizers/conseiller-authorizer'
import { JeuneQueryModel } from '../query-models/jeunes.query-model'

export interface GetJeuneMiloByDossierQuery extends Query {
idDossier: string
Expand Down
97 changes: 2 additions & 95 deletions src/infrastructure/routes/conseillers.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import {
Delete,
Get,
HttpCode,
HttpException,
HttpStatus,
Param,
Post,
Expand Down Expand Up @@ -33,10 +32,6 @@ import {
CreateRendezVousCommand,
CreateRendezVousCommandHandler
} from '../../application/commands/create-rendez-vous.command.handler'
import {
CreerJeuneMiloCommand,
CreerJeuneMiloCommandHandler
} from '../../application/commands/creer-jeune-milo.command.handler'
import { ModifierConseillerCommandHandler } from '../../application/commands/modifier-conseiller.command.handler'
import { ModifierJeuneDuConseillerCommandHandler } from '../../application/commands/modifier-jeune-du-conseiller.command.handler'
import { RecupererJeunesDuConseillerCommandHandler } from '../../application/commands/recuperer-jeunes-du-conseiller.command.handler'
Expand All @@ -47,12 +42,10 @@ import {
import { GetResumeActionsDesJeunesDuConseillerQueryHandlerDb } from '../../application/queries/action/get-resume-actions-des-jeunes-du-conseiller.query.handler.db'
import { GetConseillersQueryHandler } from '../../application/queries/get-conseillers.query.handler.db'
import { GetDetailConseillerQueryHandler } from '../../application/queries/get-detail-conseiller.query.handler.db'
import { GetDossierMiloJeuneQueryHandler } from '../../application/queries/get-dossier-milo-jeune.query.handler'
import {
GetIndicateursPourConseillerExclusionQuery,
GetIndicateursPourConseillerQueryHandler
} from '../../application/queries/get-indicateurs-pour-conseiller.query.handler.db'
import { GetJeuneMiloByDossierQueryHandler } from '../../application/queries/get-jeune-milo-by-dossier.query.handler.db'
import { GetJeunesByConseillerQueryHandler } from '../../application/queries/get-jeunes-by-conseiller.query.handler.db'
import { GetJeunesIdentitesQueryHandler } from '../../application/queries/get-jeunes-identites.query.handler.db'
import {
Expand All @@ -63,17 +56,14 @@ import { IndicateursPourConseillerQueryModel } from '../../application/queries/q
import {
DetailJeuneConseillerQueryModel,
IdentiteJeuneQueryModel,
JeuneQueryModel,
ResumeActionsDuJeuneQueryModel
} from '../../application/queries/query-models/jeunes.query-model'
import { DossierJeuneMiloQueryModel } from '../../application/queries/query-models/milo.query-model'
import { RendezVousConseillerFutursEtPassesQueryModel } from '../../application/queries/query-models/rendez-vous.query-model'
import { GetAllRendezVousConseillerQueryHandler } from '../../application/queries/rendez-vous/get-rendez-vous-conseiller.query.handler.db'
import { ErreurHttp } from '../../building-blocks/types/domain-error'
import {
Result,
isFailure,
isSuccess,
Result
isSuccess
} from '../../building-blocks/types/result'
import { Action } from '../../domain/action/action'
import { Authentification } from '../../domain/authentification'
Expand All @@ -84,7 +74,6 @@ import { handleFailure } from './result.handler'
import { CreateActionPayload } from './validation/actions.inputs'
import {
CreateListeDeDiffusionPayload,
CreerJeuneMiloPayload,
DetailConseillerPayload,
EnvoyerNotificationsPayload,
GetConseillersQueryParams,
Expand All @@ -109,9 +98,6 @@ export class ConseillersController {
private readonly sendNotificationsNouveauxMessages: SendNotificationsNouveauxMessagesCommandHandler,
private readonly getAllRendezVousConseillerQueryHandler: GetAllRendezVousConseillerQueryHandler,
private readonly createRendezVousCommandHandler: CreateRendezVousCommandHandler,
private readonly getDossierMiloJeuneQueryHandler: GetDossierMiloJeuneQueryHandler,
private readonly getJeuneMiloByDossierQueryHandler: GetJeuneMiloByDossierQueryHandler,
private readonly creerJeuneMiloCommandHandler: CreerJeuneMiloCommandHandler,
private readonly modifierConseillerCommandHandler: ModifierConseillerCommandHandler,
private readonly recupererJeunesDuConseillerCommandHandler: RecupererJeunesDuConseillerCommandHandler,
private readonly modifierJeuneDuConseillerCommandHandler: ModifierJeuneDuConseillerCommandHandler,
Expand Down Expand Up @@ -360,85 +346,6 @@ export class ConseillersController {
throw handleFailure(result)
}

@ApiOperation({
summary: "Récupère le dossier Milo d'un jeune",
description: 'Autorisé pour un conseiller du jeune'
})
@Get('/milo/dossiers/:idDossier')
@ApiResponse({
type: DossierJeuneMiloQueryModel
})
async getDossierMilo(
@Param('idDossier') idDossier: string,
@Utilisateur() utilisateur: Authentification.Utilisateur
): Promise<DossierJeuneMiloQueryModel> {
const result = await this.getDossierMiloJeuneQueryHandler.execute(
{ idDossier },
utilisateur
)

if (isFailure(result)) {
if (result.error.code === ErreurHttp.CODE) {
throw new HttpException(
result.error.message,
(result.error as ErreurHttp).statusCode
)
}
throw new RuntimeException(result.error.message)
}

return result.data
}

@ApiOperation({
summary: 'Récupère un jeune par son idDossier Milo',
description: 'Autorisé pour un conseiller du jeune'
})
@Get('milo/jeunes/:idDossier')
@ApiResponse({
type: JeuneQueryModel
})
async getJeuneMiloByDossier(
@Param('idDossier') idDossier: string,
@Utilisateur() utilisateur: Authentification.Utilisateur
): Promise<JeuneQueryModel> {
const result = await this.getJeuneMiloByDossierQueryHandler.execute(
{ idDossier },
utilisateur
)

if (isSuccess(result)) {
return result.data
}
throw handleFailure(result)
}

@ApiOperation({
summary: 'Crée un jeune Milo',
description: 'Autorisé pour un conseiller Milo'
})
@Post('milo/jeunes')
async postJeuneMilo(
@Body() creerJeuneMiloPayload: CreerJeuneMiloPayload,
@Utilisateur() utilisateur: Authentification.Utilisateur
): Promise<IdentiteJeuneQueryModel> {
const command: CreerJeuneMiloCommand = {
idConseiller: creerJeuneMiloPayload.idConseiller,
email: creerJeuneMiloPayload.email,
nom: creerJeuneMiloPayload.nom,
prenom: creerJeuneMiloPayload.prenom,
idPartenaire: creerJeuneMiloPayload.idDossier
}
const result = await this.creerJeuneMiloCommandHandler.execute(
command,
utilisateur
)
if (isSuccess(result)) {
return result.data
}
throw handleFailure(result)
}

@ApiOperation({
summary:
"Permet d'ajouter l'agence ou de modifier les notifications sonores ou la date de signature des CGU d'un conseiller",
Expand Down
Loading

0 comments on commit c548d3c

Please sign in to comment.