Skip to content

Commit

Permalink
Ajout de niveau max par type d'eau ✨
Browse files Browse the repository at this point in the history
  • Loading branch information
vincentlaine committed Sep 19, 2024
1 parent ac9eda3 commit 7cb1154
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 12 deletions.
11 changes: 10 additions & 1 deletion src/departements/departements.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -136,16 +136,25 @@ export class DepartementsService {
return {
date: s.date,
departementSituation: departements.map(d => {
let niveauGraviteMax = s.departementSituation && s.departementSituation[d.code] ? s.departementSituation[d.code] : null;
let niveauGraviteMax = s.departementSituation && s.departementSituation[d.code] ? s.departementSituation[d.code].max : null;
let niveauGraviteSupMax = s.departementSituation && s.departementSituation[d.code] ? s.departementSituation[d.code].sup : null;
let niveauGraviteSouMax = s.departementSituation && s.departementSituation[d.code] ? s.departementSituation[d.code].sou : null;
let niveauGraviteAepMax = s.departementSituation && s.departementSituation[d.code] ? s.departementSituation[d.code].aep : null;
if (s.date === new Date().toISOString().split('T')[0]) {
const depZones = currentZones.filter(z => z.departement === d.code);
niveauGraviteMax = depZones.length > 0 ? Utils.getNiveauInversed(max(depZones.map(z => Utils.getNiveau(z.niveauGravite)))) : null;
niveauGraviteSupMax = depZones.filter(z => z.type === 'SUP').length > 0 ? Utils.getNiveauInversed(max(depZones.filter(z => z.type === 'SUP').map(z => Utils.getNiveau(z.niveauGravite)))) : null;
niveauGraviteSouMax = depZones.filter(z => z.type === 'SOU').length > 0 ? Utils.getNiveauInversed(max(depZones.filter(z => z.type === 'SOU').map(z => Utils.getNiveau(z.niveauGravite)))) : null;
niveauGraviteAepMax = depZones.filter(z => z.type === 'AEP').length > 0 ? Utils.getNiveauInversed(max(depZones.filter(z => z.type === 'AEP').map(z => Utils.getNiveau(z.niveauGravite)))) : null;
}
return {
code: d.code,
nom: d.nom,
region: d.region?.nom,
niveauGraviteMax: niveauGraviteMax,
niveauGraviteSupMax: niveauGraviteSupMax,
niveauGraviteSouMax: niveauGraviteSouMax,
niveauGraviteAepMax: niveauGraviteAepMax,
};
}),
};
Expand Down
21 changes: 21 additions & 0 deletions src/departements/dto/departement.dto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,25 @@ export class DepartementDto {
description: 'Niveau de gravité maximum en vigueur sur le département, null si pas de zone d\'alerte en vigueur',
})
niveauGraviteMax: string;

@ApiProperty({
enum: ['vigilance', 'alerte', 'alerte_renforcee', 'crise'],
example: 'alerte_renforcee',
description: 'Niveau de gravité maximum en vigueur sur le département pour les eaux de type superficielle, null si pas de zone d\'alerte en vigueur',
})
niveauGraviteSupMax: string;

@ApiProperty({
enum: ['vigilance', 'alerte', 'alerte_renforcee', 'crise'],
example: 'alerte_renforcee',
description: 'Niveau de gravité maximum en vigueur sur le département pour les eaux de type souterraine, null si pas de zone d\'alerte en vigueur',
})
niveauGraviteSouMax: string;

@ApiProperty({
enum: ['vigilance', 'alerte', 'alerte_renforcee', 'crise'],
example: 'alerte_renforcee',
description: 'Niveau de gravité maximum en vigueur sur le département pour les eaux potable, null si pas de zone d\'alerte en vigueur. Donnée disponible à partir du 28/04/2024.',
})
niveauGraviteAepMax: string;
}
22 changes: 11 additions & 11 deletions src/subscriptions/subscriptions.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,20 +76,20 @@ export class SubscriptionsService {
subscription.situation = {};
}

const whereClause = subscription.commune ? {
email: subscription.email,
commune: subscription.commune,
idAdresse: subscription.idAdresse,
} : {
lon: subscription.lon,
lat: subscription.lat,
}
const subscriptionExists = await this.abonnementMailRepository.exists({
where: {
email: subscription.email,
commune: subscription.commune,
idAdresse: subscription.idAdresse,
},
where: whereClause,
});
if (subscriptionExists) {
const changes = pick(subscription, 'profil', 'typesEau');
await this.abonnementMailRepository.update({
email: subscription.email,
commune: subscription.commune,
idAdresse: subscription.idAdresse,
}, changes);
await this.abonnementMailRepository.update(whereClause, changes);
} else {
await this.abonnementMailRepository.save(subscription);

Expand Down Expand Up @@ -275,7 +275,7 @@ export class SubscriptionsService {
SUP,
Boolean(subscription.situation?.SUP && subscription.situation.SUP !== SUP),
SOU,
Boolean( subscription.situation?.SOU && subscription.situation.SOU !== SOU),
Boolean(subscription.situation?.SOU && subscription.situation.SOU !== SOU),
subscription.commune,
subscription.libelleLocalisation,
subscription.profil,
Expand Down

0 comments on commit 7cb1154

Please sign in to comment.