mirror of
https://framagit.org/enfance-libre/statistiques
synced 2025-12-07 13:13:44 +00:00
57 lines
1.8 KiB
TypeScript
57 lines
1.8 KiB
TypeScript
import { Famille } from "../Famille";
|
|
import { checkDataConsistency } from "./checkDataConsistency";
|
|
import {
|
|
MessageDeNettoyage,
|
|
msgDonneeBloquante,
|
|
msgDonneeSuspecte,
|
|
} from "./MessageDeNettoyage";
|
|
import { supprimerLesEntreesVide } from "./supprimerLesEntreesVide";
|
|
import { supprimerLesEvenementsHorsResisstance } from "./supprimerLesEvenementsHorsResisstance";
|
|
import { supprimerLesEvenementsSansDate } from "./supprimerLesEvenementsSansDate";
|
|
|
|
export type DonneesNettoyees = {
|
|
familles: Famille[];
|
|
messages: MessageDeNettoyage[];
|
|
};
|
|
|
|
export function nettoyerDonneesFamilles(
|
|
donneesFamillesBrutes: Famille[]
|
|
): DonneesNettoyees {
|
|
let familles = donneesFamillesBrutes;
|
|
|
|
let messages: MessageDeNettoyage[] = [];
|
|
|
|
const output1 = supprimerLesEntreesVide(familles);
|
|
messages = [...messages, ...output1.messages];
|
|
familles = output1.familles;
|
|
|
|
// TODO convert checkDataConsistency to filters
|
|
const consistencyReport = checkDataConsistency(familles);
|
|
|
|
// Adapte les message
|
|
const errorMessages: MessageDeNettoyage[] = consistencyReport.errors.map(
|
|
(e) => msgDonneeBloquante(`${e.familyId} - ${e.issueType}`)
|
|
);
|
|
const warnings: MessageDeNettoyage[] = consistencyReport.warnings.map((e) =>
|
|
msgDonneeSuspecte(`${e.familyId} - ${e.issueType}`)
|
|
);
|
|
|
|
messages = [...messages, ...errorMessages, ...warnings];
|
|
|
|
type FonctionNettoyage = (familles: Famille[]) => DonneesNettoyees;
|
|
const fonctionsDeNettoyage: FonctionNettoyage[] = [
|
|
supprimerLesEvenementsSansDate,
|
|
supprimerLesEvenementsHorsResisstance,
|
|
];
|
|
|
|
for (const fn of fonctionsDeNettoyage) {
|
|
const donneesNettoyees: DonneesNettoyees = fn.apply(null, [familles]);
|
|
messages = [...messages, ...donneesNettoyees.messages];
|
|
familles = donneesNettoyees.familles;
|
|
}
|
|
|
|
return {
|
|
familles,
|
|
messages,
|
|
};
|
|
}
|