From 697cadef0703ad79b256301022b575f3e5ae2859 Mon Sep 17 00:00:00 2001 From: folland87 Date: Thu, 26 Sep 2024 10:52:35 +0200 Subject: [PATCH] add annelis export --- src/api/opendata/opendata.routes.js | 61 ++++++++++++++++++++--------- 1 file changed, 42 insertions(+), 19 deletions(-) diff --git a/src/api/opendata/opendata.routes.js b/src/api/opendata/opendata.routes.js index 2dddbebb..e3f8cb9d 100644 --- a/src/api/opendata/opendata.routes.js +++ b/src/api/opendata/opendata.routes.js @@ -1,29 +1,52 @@ -import express from 'express'; -import { db } from '../../services/mongo.service'; -import { BadRequestError } from '../commons/http-errors'; +import express from "express"; +import { db } from "../../services/mongo.service"; +import { BadRequestError } from "../commons/http-errors"; const router = new express.Router(); const OPTIONS = { projection: { _id: 0, dataset: 0 } }; const FILTERS = { - 'fr-esr-annelis-paysage-gouvernance': { annelis: 'Y', dataset: 'fr-esr-paysage-fonctions-gouvernance' }, - 'fr-esr-paysage-fonctions-gouvernance': { dataset: 'fr-esr-paysage-fonctions-gouvernance' }, - 'fr-esr-annelis-paysage-etablissements': { dataset: 'fr-esr-annelis-paysage-etablissements' }, - 'fr-esr-paysage_structures_identifiants': { dataset: 'fr-esr-paysage_structures_identifiants' }, - 'fr-esr-paysage_personnes_identifiants': { dataset: 'fr-esr-paysage_personnes_identifiants' }, - 'fr-esr-paysage_structures_websites': { dataset: 'fr-esr-paysage_structures_websites' }, - 'fr-esr-paysage_prix': { dataset: 'fr-esr-paysage_prix' }, - fr_esr_paysage_laureats_all: { dataset: 'fr_esr_paysage_laureats_all' }, + "fr-esr-annelis-paysage-gouvernance": { + annelis: "Y", + dataset: "fr-esr-paysage-fonctions-gouvernance", + }, + "fr-esr-paysage-fonctions-gouvernance": { + dataset: "fr-esr-paysage-fonctions-gouvernance", + }, + "fr-esr-annelis-paysage-etablissements": { + dataset: "fr-esr-annelis-paysage-etablissements", + }, + "fr-esr-paysage_structures_identifiants": { + dataset: "fr-esr-paysage_structures_identifiants", + }, + "fr-esr-paysage_personnes_identifiants": { + dataset: "fr-esr-paysage_personnes_identifiants", + }, + "fr-esr-paysage_structures_websites": { + dataset: "fr-esr-paysage_structures_websites", + }, + "fr-esr-paysage_prix": { dataset: "fr-esr-paysage_prix" }, + fr_esr_paysage_laureats_all: { dataset: "fr_esr_paysage_laureats_all" }, }; -router.route('/opendata/:datasetId') - .get(async (req, res) => { - const { datasetId } = req.params; - const query = FILTERS[datasetId]; - if (!query) throw new BadRequestError('Unknown dataset'); - const data = await db.collection('opendata').find(query, OPTIONS).toArray(); - res.status(200).json(data); - }); +router.route("/opendata/:datasetId").get(async (req, res) => { + const { datasetId } = req.params; + const query = FILTERS[datasetId]; + if (!query) throw new BadRequestError("Unknown dataset"); + const data = await db.collection("opendata").find(query, OPTIONS).toArray(); + res.status(200).json(data); +}); + +router.route("/exports/annelis/gouvernance").get(async (req, res) => { + const annelis = req.query.annelis; + const etat = req.query.etat; + + const query = { dataset: "fr-esr-paysage-fonctions-gouvernance" }; + if (annelis) query.annelis = annelis; + if (etat) query.etat = etat; + const data = await db.collection("opendata").find(query, OPTIONS).toArray(); + res.status(200).json(data); +}); export default router;