Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🐛 Annuler tâche raccordement #2217

Merged
merged 1 commit into from
Sep 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions packages/applications/bootstrap/src/setupTâche.ts
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ const registerTâcheRaccordementSaga = async () => {
'RéférenceDossierRacordementModifiée-V1',
'GestionnaireRéseauRaccordementModifié-V1',
'GestionnaireRéseauInconnuAttribué-V1',
'RaccordementSupprimé-V1',
],
eventHandler: async (event) => {
await mediator.publish<TâcheRaccordementSaga.Execute>({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,4 +87,9 @@ registerRéseauQueries({
console.log(`Projet sans raccordement existant : ${projet}`),
);
projetsEnErreurs.forEach((projet) => console.table(projet));

if (projetsEnErreurs.length > 0) {
process.exit(1);
}
process.exit(0);
})();
19 changes: 18 additions & 1 deletion packages/domain/tâche/src/saga/tâcheRaccordement.saga.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ import * as Tâche from '../typeTâche.valueType';
export type SubscriptionEvent =
| Raccordement.RéférenceDossierRacordementModifiéeEvent
| Raccordement.GestionnaireRéseauRaccordementModifiéEvent
| Raccordement.GestionnaireRéseauInconnuAttribuéEvent;
| Raccordement.GestionnaireRéseauInconnuAttribuéEvent
| Raccordement.RaccordementSuppriméEvent;

export type Execute = Message<'System.Saga.TâcheRaccordement', SubscriptionEvent>;

Expand Down Expand Up @@ -47,6 +48,22 @@ export const register = () => {
},
});
break;
case 'RaccordementSupprimé-V1':
await mediator.send<AcheverTâcheCommand>({
type: 'System.Tâche.Command.AcheverTâche',
data: {
identifiantProjet: IdentifiantProjet.convertirEnValueType(identifiantProjet),
typeTâche: Tâche.raccordementRéférenceNonTransmise,
},
});
await mediator.send<AcheverTâcheCommand>({
type: 'System.Tâche.Command.AcheverTâche',
data: {
identifiantProjet: IdentifiantProjet.convertirEnValueType(identifiantProjet),
typeTâche: Tâche.raccordementGestionnaireRéseauInconnuAttribué,
},
});
break;
}
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,18 +135,17 @@ EtantDonné(
raisonSocialeGestionnaireRéseau: string,
nomProjet: string,
) {
const { identifiantProjet } = this.lauréatWorld.rechercherLauréatFixture(nomProjet);
const { codeEIC } = this.gestionnaireRéseauWorld.rechercherGestionnaireRéseauFixture(
raisonSocialeGestionnaireRéseau,
);
await attribuerGestionnaireRéseau.call(this, nomProjet, codeEIC);
},
);

await mediator.send<Raccordement.RaccordementUseCase>({
type: 'Réseau.Raccordement.UseCase.AttribuerGestionnaireRéseau',
data: {
identifiantProjetValue: identifiantProjet.formatter(),
identifiantGestionnaireRéseauValue: codeEIC,
},
});
EtantDonné(
'le gestionnaire de réseau inconnu attribué au raccordement du projet lauréat {string}',
async function (this: PotentielWorld, nomProjet: string) {
await attribuerGestionnaireRéseau.call(this, nomProjet, 'inconnu');
},
);

Expand Down Expand Up @@ -181,3 +180,19 @@ EtantDonné(
});
},
);

async function attribuerGestionnaireRéseau(
this: PotentielWorld,
nomProjet: string,
codeEIC: string,
) {
const { identifiantProjet } = this.lauréatWorld.rechercherLauréatFixture(nomProjet);

await mediator.send<Raccordement.RaccordementUseCase>({
type: 'Réseau.Raccordement.UseCase.AttribuerGestionnaireRéseau',
data: {
identifiantProjetValue: identifiantProjet.formatter(),
identifiantGestionnaireRéseauValue: codeEIC,
},
});
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
# language: fr
Fonctionnalité: Supprimer le raccordement d'un projet

Scénario: Le système supprime le raccordement d'un projet si celui-ci a un abandon accordé
Contexte:
Etant donné le projet lauréat "Du boulodrome de Marseille"
Et le porteur "Barbara Gordon" ayant accés au projet lauréat "Du boulodrome de Marseille"
Et le DGEC validateur "Bruce Wayne"
Et un gestionnaire de réseau

Scénario: Le système supprime le raccordement d'un projet si celui-ci a un abandon accordé
Etant donné un gestionnaire de réseau
| Code EIC | 17X0000009352859 |
| Raison sociale | Arc Energies Maurienne |
Et le gestionnaire de réseau "Arc Energies Maurienne" attribué au raccordement du projet lauréat "Du boulodrome de Marseille"
Expand All @@ -22,3 +24,9 @@ Fonctionnalité: Supprimer le raccordement d'un projet
Et une demande d'abandon en cours pour le projet lauréat
Quand le DGEC validateur accorde l'abandon pour le projet lauréat
Alors le dossier ayant comme référence "OUE-RP-2022-000033" ne devrait plus être consultable dans le raccordement du projet lauréat "Du boulodrome de Marseille"

Scénario: Le système supprime les tâches de raccordement d'un projet si celui-ci a un abandon accordé
Etant donné le gestionnaire de réseau inconnu attribué au raccordement du projet lauréat "Du boulodrome de Marseille"
Et une demande d'abandon en cours pour le projet lauréat
Quand le DGEC validateur accorde l'abandon pour le projet lauréat
Alors une tâche indiquant de "mettre à jour le gestionnaire de réseau" n'est plus consultable dans la liste des tâches du porteur pour le projet
5 changes: 4 additions & 1 deletion packages/specifications/src/tâche/tâche.world.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ export type RechercherTypeTâche =
| 'confirmer un abandon'
| 'transmettre les garanties financières'
| 'mettre à jour le gestionnaire de réseau'
| 'échoir les garanties financières';
| 'échoir les garanties financières'
| 'transmettre une référence de raccordement';

export class TâcheWorld {
rechercherTypeTâche(value: RechercherTypeTâche): TypeTâche.ValueType {
Expand All @@ -20,6 +21,8 @@ export class TâcheWorld {
return TypeTâche.garantiesFinancièresDemander;
case 'mettre à jour le gestionnaire de réseau':
return TypeTâche.raccordementGestionnaireRéseauInconnuAttribué;
case 'transmettre une référence de raccordement':
return TypeTâche.raccordementRéférenceNonTransmise;
benjlevesque marked this conversation as resolved.
Show resolved Hide resolved
default:
return TypeTâche.inconnue;
}
Expand Down