@tricoteuses/assemblee
Version:
Retrieve, clean up & handle French Assemblée nationale's open data
70 lines • 8.99 kB
JavaScript
import assert from "assert";
import { cleanActeLegislatif, cleanActeOuDossierInitiateur } from "./actes_legislatifs.mjs";
import { cleanRapporteur } from "./acteurs.mjs";
import { cleanXmlArtefacts } from "./xml.mjs";
export function cleanDossierParlementaire(dossierParlementaire) {
cleanXmlArtefacts(dossierParlementaire);
const xsiType = dossierParlementaire["@xsi:type"];
if (xsiType !== undefined) {
dossierParlementaire.xsiType = xsiType;
delete dossierParlementaire["@xsi:type"];
}
const titreDossier = dossierParlementaire.titreDossier;
cleanXmlArtefacts(titreDossier);
cleanActeOuDossierInitiateur(dossierParlementaire);
let actesLegislatifs = dossierParlementaire.actesLegislatifs;
if (actesLegislatifs !== undefined) {
actesLegislatifs = actesLegislatifs.acteLegislatif;
if (!Array.isArray(actesLegislatifs)) {
assert(actesLegislatifs);
actesLegislatifs = [actesLegislatifs];
}
dossierParlementaire.actesLegislatifs = actesLegislatifs;
for (const acteLegislatif of actesLegislatifs) {
cleanActeLegislatif(acteLegislatif);
}
}
let plf = dossierParlementaire.PLF;
if (plf !== undefined) {
plf = plf.EtudePLF;
assert(Array.isArray(plf));
delete dossierParlementaire.PLF;
dossierParlementaire.plf = plf;
for (const etudePlf of plf) {
let rapporteurs = etudePlf.rapporteur;
if (rapporteurs !== undefined) {
if (!Array.isArray(rapporteurs)) {
assert(rapporteurs);
rapporteurs = [rapporteurs];
}
delete etudePlf.rapporteur;
etudePlf.rapporteurs = rapporteurs;
for (const rapporteur of rapporteurs) {
cleanRapporteur(rapporteur);
}
}
let missionMinefi = etudePlf.missionMinefi;
if (missionMinefi !== undefined) {
cleanMission(missionMinefi);
}
etudePlf.ordreDiqs = etudePlf.ordreDIQS;
delete etudePlf.ordreDIQS;
assert(etudePlf.ordreDiqs);
}
}
}
function cleanMission(mission) {
let missions = mission.missions;
if (missions !== undefined) {
missions = missions.mission;
if (!Array.isArray(missions)) {
assert(missions);
missions = [missions];
}
mission.missions = missions;
for (const missionItem of missions) {
cleanMission(missionItem);
}
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJjbGVhbkFjdGVMZWdpc2xhdGlmIiwiY2xlYW5BY3RlT3VEb3NzaWVySW5pdGlhdGV1ciIsImNsZWFuUmFwcG9ydGV1ciIsImNsZWFuWG1sQXJ0ZWZhY3RzIiwiY2xlYW5Eb3NzaWVyUGFybGVtZW50YWlyZSIsImRvc3NpZXJQYXJsZW1lbnRhaXJlIiwieHNpVHlwZSIsInVuZGVmaW5lZCIsInRpdHJlRG9zc2llciIsImFjdGVzTGVnaXNsYXRpZnMiLCJhY3RlTGVnaXNsYXRpZiIsIkFycmF5IiwiaXNBcnJheSIsInBsZiIsIlBMRiIsIkV0dWRlUExGIiwiZXR1ZGVQbGYiLCJyYXBwb3J0ZXVycyIsInJhcHBvcnRldXIiLCJtaXNzaW9uTWluZWZpIiwiY2xlYW5NaXNzaW9uIiwib3JkcmVEaXFzIiwib3JkcmVESVFTIiwibWlzc2lvbiIsIm1pc3Npb25zIiwibWlzc2lvbkl0ZW0iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xlYW5lcnMvZG9zc2llcnNfbGVnaXNsYXRpZnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcblxuaW1wb3J0IHtcbiAgY2xlYW5BY3RlTGVnaXNsYXRpZixcbiAgY2xlYW5BY3RlT3VEb3NzaWVySW5pdGlhdGV1cixcbn0gZnJvbSBcIi4vYWN0ZXNfbGVnaXNsYXRpZnNcIlxuaW1wb3J0IHsgY2xlYW5SYXBwb3J0ZXVyIH0gZnJvbSBcIi4vYWN0ZXVyc1wiXG5pbXBvcnQgeyBjbGVhblhtbEFydGVmYWN0cyB9IGZyb20gXCIuL3htbFwiXG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbkRvc3NpZXJQYXJsZW1lbnRhaXJlKGRvc3NpZXJQYXJsZW1lbnRhaXJlOiBhbnkpOiB2b2lkIHtcbiAgY2xlYW5YbWxBcnRlZmFjdHMoZG9zc2llclBhcmxlbWVudGFpcmUpXG5cbiAgY29uc3QgeHNpVHlwZSA9IGRvc3NpZXJQYXJsZW1lbnRhaXJlW1wiQHhzaTp0eXBlXCJdXG4gIGlmICh4c2lUeXBlICE9PSB1bmRlZmluZWQpIHtcbiAgICBkb3NzaWVyUGFybGVtZW50YWlyZS54c2lUeXBlID0geHNpVHlwZVxuICAgIGRlbGV0ZSBkb3NzaWVyUGFybGVtZW50YWlyZVtcIkB4c2k6dHlwZVwiXVxuICB9XG5cbiAgY29uc3QgdGl0cmVEb3NzaWVyID0gZG9zc2llclBhcmxlbWVudGFpcmUudGl0cmVEb3NzaWVyXG4gIGNsZWFuWG1sQXJ0ZWZhY3RzKHRpdHJlRG9zc2llcilcblxuICBjbGVhbkFjdGVPdURvc3NpZXJJbml0aWF0ZXVyKGRvc3NpZXJQYXJsZW1lbnRhaXJlKVxuXG4gIGxldCBhY3Rlc0xlZ2lzbGF0aWZzID0gZG9zc2llclBhcmxlbWVudGFpcmUuYWN0ZXNMZWdpc2xhdGlmc1xuICBpZiAoYWN0ZXNMZWdpc2xhdGlmcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgYWN0ZXNMZWdpc2xhdGlmcyA9IGFjdGVzTGVnaXNsYXRpZnMuYWN0ZUxlZ2lzbGF0aWZcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYWN0ZXNMZWdpc2xhdGlmcykpIHtcbiAgICAgIGFzc2VydChhY3Rlc0xlZ2lzbGF0aWZzKVxuICAgICAgYWN0ZXNMZWdpc2xhdGlmcyA9IFthY3Rlc0xlZ2lzbGF0aWZzXVxuICAgIH1cbiAgICBkb3NzaWVyUGFybGVtZW50YWlyZS5hY3Rlc0xlZ2lzbGF0aWZzID0gYWN0ZXNMZWdpc2xhdGlmc1xuICAgIGZvciAoY29uc3QgYWN0ZUxlZ2lzbGF0aWYgb2YgYWN0ZXNMZWdpc2xhdGlmcykge1xuICAgICAgY2xlYW5BY3RlTGVnaXNsYXRpZihhY3RlTGVnaXNsYXRpZilcbiAgICB9XG4gIH1cblxuICBsZXQgcGxmID0gZG9zc2llclBhcmxlbWVudGFpcmUuUExGXG4gIGlmIChwbGYgIT09IHVuZGVmaW5lZCkge1xuICAgIHBsZiA9IHBsZi5FdHVkZVBMRlxuICAgIGFzc2VydChBcnJheS5pc0FycmF5KHBsZikpXG4gICAgZGVsZXRlIGRvc3NpZXJQYXJsZW1lbnRhaXJlLlBMRlxuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlLnBsZiA9IHBsZlxuXG4gICAgZm9yIChjb25zdCBldHVkZVBsZiBvZiBwbGYpIHtcbiAgICAgIGxldCByYXBwb3J0ZXVycyA9IGV0dWRlUGxmLnJhcHBvcnRldXJcbiAgICAgIGlmIChyYXBwb3J0ZXVycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShyYXBwb3J0ZXVycykpIHtcbiAgICAgICAgICBhc3NlcnQocmFwcG9ydGV1cnMpXG4gICAgICAgICAgcmFwcG9ydGV1cnMgPSBbcmFwcG9ydGV1cnNdXG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlIGV0dWRlUGxmLnJhcHBvcnRldXJcbiAgICAgICAgZXR1ZGVQbGYucmFwcG9ydGV1cnMgPSByYXBwb3J0ZXVyc1xuICAgICAgICBmb3IgKGNvbnN0IHJhcHBvcnRldXIgb2YgcmFwcG9ydGV1cnMpIHtcbiAgICAgICAgICBjbGVhblJhcHBvcnRldXIocmFwcG9ydGV1cilcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsZXQgbWlzc2lvbk1pbmVmaSA9IGV0dWRlUGxmLm1pc3Npb25NaW5lZmlcbiAgICAgIGlmIChtaXNzaW9uTWluZWZpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY2xlYW5NaXNzaW9uKG1pc3Npb25NaW5lZmkpXG4gICAgICB9XG5cbiAgICAgIGV0dWRlUGxmLm9yZHJlRGlxcyA9IGV0dWRlUGxmLm9yZHJlRElRU1xuICAgICAgZGVsZXRlIGV0dWRlUGxmLm9yZHJlRElRU1xuICAgICAgYXNzZXJ0KGV0dWRlUGxmLm9yZHJlRGlxcylcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY2xlYW5NaXNzaW9uKG1pc3Npb246IGFueSkge1xuICBsZXQgbWlzc2lvbnMgPSBtaXNzaW9uLm1pc3Npb25zXG4gIGlmIChtaXNzaW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgbWlzc2lvbnMgPSBtaXNzaW9ucy5taXNzaW9uXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG1pc3Npb25zKSkge1xuICAgICAgYXNzZXJ0KG1pc3Npb25zKVxuICAgICAgbWlzc2lvbnMgPSBbbWlzc2lvbnNdXG4gICAgfVxuICAgIG1pc3Npb24ubWlzc2lvbnMgPSBtaXNzaW9uc1xuICAgIGZvciAoY29uc3QgbWlzc2lvbkl0ZW0gb2YgbWlzc2lvbnMpIHtcbiAgICAgIGNsZWFuTWlzc2lvbihtaXNzaW9uSXRlbSlcbiAgICB9XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxNQUFNLFFBQVE7QUFBQSxTQUd6QkMsbUJBQW1CLEVBQ25CQyw0QkFBNEI7QUFBQSxTQUVyQkMsZUFBZTtBQUFBLFNBQ2ZDLGlCQUFpQjtBQUUxQixPQUFPLFNBQVNDLHlCQUF5QkEsQ0FBQ0Msb0JBQXlCLEVBQVE7RUFDekVGLGlCQUFpQixDQUFDRSxvQkFBb0IsQ0FBQztFQUV2QyxNQUFNQyxPQUFPLEdBQUdELG9CQUFvQixDQUFDLFdBQVcsQ0FBQztFQUNqRCxJQUFJQyxPQUFPLEtBQUtDLFNBQVMsRUFBRTtJQUN6QkYsb0JBQW9CLENBQUNDLE9BQU8sR0FBR0EsT0FBTztJQUN0QyxPQUFPRCxvQkFBb0IsQ0FBQyxXQUFXLENBQUM7RUFDMUM7RUFFQSxNQUFNRyxZQUFZLEdBQUdILG9CQUFvQixDQUFDRyxZQUFZO0VBQ3RETCxpQkFBaUIsQ0FBQ0ssWUFBWSxDQUFDO0VBRS9CUCw0QkFBNEIsQ0FBQ0ksb0JBQW9CLENBQUM7RUFFbEQsSUFBSUksZ0JBQWdCLEdBQUdKLG9CQUFvQixDQUFDSSxnQkFBZ0I7RUFDNUQsSUFBSUEsZ0JBQWdCLEtBQUtGLFNBQVMsRUFBRTtJQUNsQ0UsZ0JBQWdCLEdBQUdBLGdCQUFnQixDQUFDQyxjQUFjO0lBQ2xELElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxPQUFPLENBQUNILGdCQUFnQixDQUFDLEVBQUU7TUFDcENWLE1BQU0sQ0FBQ1UsZ0JBQWdCLENBQUM7TUFDeEJBLGdCQUFnQixHQUFHLENBQUNBLGdCQUFnQixDQUFDO0lBQ3ZDO0lBQ0FKLG9CQUFvQixDQUFDSSxnQkFBZ0IsR0FBR0EsZ0JBQWdCO0lBQ3hELEtBQUssTUFBTUMsY0FBYyxJQUFJRCxnQkFBZ0IsRUFBRTtNQUM3Q1QsbUJBQW1CLENBQUNVLGNBQWMsQ0FBQztJQUNyQztFQUNGO0VBRUEsSUFBSUcsR0FBRyxHQUFHUixvQkFBb0IsQ0FBQ1MsR0FBRztFQUNsQyxJQUFJRCxHQUFHLEtBQUtOLFNBQVMsRUFBRTtJQUNyQk0sR0FBRyxHQUFHQSxHQUFHLENBQUNFLFFBQVE7SUFDbEJoQixNQUFNLENBQUNZLEtBQUssQ0FBQ0MsT0FBTyxDQUFDQyxHQUFHLENBQUMsQ0FBQztJQUMxQixPQUFPUixvQkFBb0IsQ0FBQ1MsR0FBRztJQUMvQlQsb0JBQW9CLENBQUNRLEdBQUcsR0FBR0EsR0FBRztJQUU5QixLQUFLLE1BQU1HLFFBQVEsSUFBSUgsR0FBRyxFQUFFO01BQzFCLElBQUlJLFdBQVcsR0FBR0QsUUFBUSxDQUFDRSxVQUFVO01BQ3JDLElBQUlELFdBQVcsS0FBS1YsU0FBUyxFQUFFO1FBQzdCLElBQUksQ0FBQ0ksS0FBSyxDQUFDQyxPQUFPLENBQUNLLFdBQVcsQ0FBQyxFQUFFO1VBQy9CbEIsTUFBTSxDQUFDa0IsV0FBVyxDQUFDO1VBQ25CQSxXQUFXLEdBQUcsQ0FBQ0EsV0FBVyxDQUFDO1FBQzdCO1FBQ0EsT0FBT0QsUUFBUSxDQUFDRSxVQUFVO1FBQzFCRixRQUFRLENBQUNDLFdBQVcsR0FBR0EsV0FBVztRQUNsQyxLQUFLLE1BQU1DLFVBQVUsSUFBSUQsV0FBVyxFQUFFO1VBQ3BDZixlQUFlLENBQUNnQixVQUFVLENBQUM7UUFDN0I7TUFDRjtNQUVBLElBQUlDLGFBQWEsR0FBR0gsUUFBUSxDQUFDRyxhQUFhO01BQzFDLElBQUlBLGFBQWEsS0FBS1osU0FBUyxFQUFFO1FBQy9CYSxZQUFZLENBQUNELGFBQWEsQ0FBQztNQUM3QjtNQUVBSCxRQUFRLENBQUNLLFNBQVMsR0FBR0wsUUFBUSxDQUFDTSxTQUFTO01BQ3ZDLE9BQU9OLFFBQVEsQ0FBQ00sU0FBUztNQUN6QnZCLE1BQU0sQ0FBQ2lCLFFBQVEsQ0FBQ0ssU0FBUyxDQUFDO0lBQzVCO0VBQ0Y7QUFDRjtBQUVBLFNBQVNELFlBQVlBLENBQUNHLE9BQVksRUFBRTtFQUNsQyxJQUFJQyxRQUFRLEdBQUdELE9BQU8sQ0FBQ0MsUUFBUTtFQUMvQixJQUFJQSxRQUFRLEtBQUtqQixTQUFTLEVBQUU7SUFDMUJpQixRQUFRLEdBQUdBLFFBQVEsQ0FBQ0QsT0FBTztJQUMzQixJQUFJLENBQUNaLEtBQUssQ0FBQ0MsT0FBTyxDQUFDWSxRQUFRLENBQUMsRUFBRTtNQUM1QnpCLE1BQU0sQ0FBQ3lCLFFBQVEsQ0FBQztNQUNoQkEsUUFBUSxHQUFHLENBQUNBLFFBQVEsQ0FBQztJQUN2QjtJQUNBRCxPQUFPLENBQUNDLFFBQVEsR0FBR0EsUUFBUTtJQUMzQixLQUFLLE1BQU1DLFdBQVcsSUFBSUQsUUFBUSxFQUFFO01BQ2xDSixZQUFZLENBQUNLLFdBQVcsQ0FBQztJQUMzQjtFQUNGO0FBQ0YiLCJpZ25vcmVMaXN0IjpbXX0=