Skip to content

Commit

Permalink
Merge branch 'staging'
Browse files Browse the repository at this point in the history
  • Loading branch information
Mihoub2 committed Feb 5, 2024
2 parents 5594da5 + f67a83a commit 30d62ad
Show file tree
Hide file tree
Showing 8 changed files with 110 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/api/opendata/opendata.routes.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ const FILTERS = {
'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' },

};

router.route('/opendata/:datasetId')
Expand Down
4 changes: 4 additions & 0 deletions src/jobs/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ import {
exportFrEsrAnnelisPaysageEtablissements,
exportFrEsrStructureIdentifiers,
exportFrEsrPersonIdentifiers,
exportFrEsrStructureWebsites,
exportFrEsrPrizes,
} from './opendata';
import synchronizeAnnuaireCollection from './synchronize/annuaire-collection';
import synchronizeCuriexploreActors from './synchronize/curiexplore-actors';
Expand All @@ -37,10 +39,12 @@ agenda.define('send recovery email', { shouldSaveResult: true }, sendPasswordRec
agenda.define('send contact email', { shouldSaveResult: true }, sendContactEmail);
agenda.define('update key numbers', { shouldSaveResult: true }, updateKeyNumbers);
agenda.define('reindex', { shouldSaveResult: true }, reindex);
agenda.define('export fr-esr-paysage_prix', { shouldSaveResult: true }, exportFrEsrPrizes);
agenda.define('export fr-esr-paysage_structures_identifiants', { shouldSaveResult: true }, exportFrEsrStructureIdentifiers);
agenda.define('export fr-esr-paysage_personnes_identifiants', { shouldSaveResult: true }, exportFrEsrPersonIdentifiers);
agenda.define('export fr-esr-paysage-fonctions-gourvernance', { shouldSaveResult: true }, exportFrEsrPaysageFonctionsGourvernance);
agenda.define('export fr-esr-annelis-paysage-etablissements', { shouldSaveResult: true }, exportFrEsrAnnelisPaysageEtablissements);
agenda.define('export fr-esr-paysage_structures_websites', { shouldSaveResult: true }, exportFrEsrStructureWebsites);
agenda.define('synchronize fr-esr-referentiel-geographique', { shouldSaveResult: true }, synchronizeFrEsrReferentielGeographique);
agenda.define('synchronize curiexplore actors', { shouldSaveResult: true }, synchronizeCuriexploreActors);
agenda.define('ask for email revalidation with otp', { shouldSaveResult: true }, askForEmailRevalidation);
Expand Down
54 changes: 54 additions & 0 deletions src/jobs/opendata/fr-esr-paysage_prix.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
import { client, db } from '../../services/mongo.service';

const dataset = 'fr-esr-paysage_prix';

export default async function exportFrEsrPrizes() {
const json = await db.collection('prizes').aggregate([
{
$lookup: {
from: 'relationships',
let: { prizeId: '$id' },
pipeline: [
{
$match: {
$expr: {
$and: [
{ $eq: ['$resourceId', '$$prizeId'] },
{ $eq: ['$relationTag', 'prix-porteur'] },
],
},
},
},
],
as: 'relationshipData',
},
},
{
$project: {
dataset,
id_paysage: '$id',
nameFr: '$nameFr',
nameEn: '$nameEn',
descriptionFr: '$descriptionFr',
descriptionEn: '$descriptionEn',
relatedObjectId: {
$ifNull: [{ $arrayElemAt: ['$relationshipData.relatedObjectId', 0] }, null],
},
},
},
{
$match: {
id_paysage: { $exists: true },
},
},
]).toArray();

const session = client.startSession();
await session.withTransaction(async () => {
await db.collection('opendata').deleteMany({ dataset });
await db.collection('opendata').insertMany(json);
await session.endSession();
});

return { status: 'success', location: `/opendata/${dataset}` };
}
42 changes: 42 additions & 0 deletions src/jobs/opendata/fr-esr-paysage_structures_websites.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import structuresLightQuery from '../../api/commons/queries/structures.light.query';
import { client, db } from '../../services/mongo.service';

const dataset = 'fr-esr-paysage_structures_websites';

export default async function exportFrEsrStructureWebsites() {
const data = await db.collection('weblinks').aggregate([
{
$lookup: {
from: 'structures',
localField: 'resourceId',
foreignField: 'id',
pipeline: structuresLightQuery,
as: 'structure',
},
},
{ $set: { structure: { $arrayElemAt: ['$structure', 0] } } },
]).toArray();
const json = data.map(({ structure, ...websites }) => {
if (!structure || !structure.id || !websites || !websites.id) {
return null;
}
const row = {
dataset,
url: websites.url,
internal_id: websites.id,
id_structure_paysage: structure.id,
type: websites.type,
language: websites.language,
};
return row;
}).filter((row) => row !== null);

const session = client.startSession();
await session.withTransaction(async () => {
await db.collection('opendata').deleteMany({ dataset });
await db.collection('opendata').insertMany(json);
await session.endSession();
});

return { status: 'success', location: `/opendata/${dataset}` };
}
2 changes: 2 additions & 0 deletions src/jobs/opendata/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,5 @@ export { default as exportFrEsrPaysageFonctionsGourvernance } from './fr-esr-pay
export { default as exportFrEsrAnnelisPaysageEtablissements } from './fr-esr-annelis-paysage-etablissements';
export { default as exportFrEsrStructureIdentifiers } from './fr-esr-paysage_structures_identifiants';
export { default as exportFrEsrPersonIdentifiers } from './fr-esr-paysage_personnes_identifiants';
export { default as exportFrEsrStructureWebsites } from './fr-esr-paysage_structures_websites';
export { default as exportFrEsrPrizes } from './fr-esr-paysage_prix';
1 change: 1 addition & 0 deletions src/openapi/schemas/identifiers/enums/type.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ enum:
- isil
- isni
- oc
- openAlexStructId
- orgref
- pia
- piaweb-organization
Expand Down
1 change: 1 addition & 0 deletions src/openapi/schemas/structures/enums/identifier-types.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ enum:
- isil
- isni
- oc
- openAlexStructId
- orgref
- pia
- piaweb-organization
Expand Down
3 changes: 3 additions & 0 deletions src/openapi/schemas/structures/structure-create-payload.yml
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,9 @@ properties:
dealroom:
type: string
nullable: true
openAlexStructId:
type: string
nullable: true
websiteEn:
type: string
nullable: true
Expand Down

0 comments on commit 30d62ad

Please sign in to comment.