From 09148cbcb65e76d111e76bc28828faa48e8feb77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bitard=20Micha=C3=ABl?= <bitard.michael@gmail.com> Date: Tue, 1 Apr 2025 11:24:05 +0200 Subject: [PATCH 1/3] fix check prolongations --- .../api/src/business/check-prolongations.ts | 68 ++++++++++++++----- 1 file changed, 52 insertions(+), 16 deletions(-) diff --git a/packages/api/src/business/check-prolongations.ts b/packages/api/src/business/check-prolongations.ts index 4d70651e9..2aa33a0f9 100644 --- a/packages/api/src/business/check-prolongations.ts +++ b/packages/api/src/business/check-prolongations.ts @@ -207,6 +207,7 @@ const fixProlongation = (pool: Pool, checkedProlongation: CheckedProlongation): substances: getMostRecentValuePropFromEtapeFondamentaleValide('substances', demarches), titulaireIds: getMostRecentValuePropFromEtapeFondamentaleValide('titulaireIds', demarches), perimetre: getMostRecentValuePropFromEtapeFondamentaleValide('perimetre', demarches), + duree: getMostRecentValuePropFromEtapeFondamentaleValide('duree', [...demarches.filter(demarche => demarche.id === checkedProlongation.demarche_id)]) } }) ) @@ -214,27 +215,61 @@ const fixProlongation = (pool: Pool, checkedProlongation: CheckedProlongation): Effect.flatMap(({ titre, etape, propsHeritees }) => Effect.tryPromise({ try: () => { - console.info(`Trying to fix http://localhost:4180/etapes/${etape.id}`) + const changes = [] + let duree = 'fondamentale' in etape ? etape.fondamentale.duree : null + if ((isNullOrUndefined(duree) || duree === 0) && (isNotNullNorUndefined(propsHeritees.duree) && propsHeritees.duree !== 0)) { + duree = propsHeritees.duree + changes.push('duree') + } + + let substances = 'fondamentale' in etape ? etape.fondamentale.substances ?? [] : [] + if (isNullOrUndefinedOrEmpty(substances) && isNotNullNorUndefinedNorEmpty(propsHeritees.substances) ) { + substances = propsHeritees.substances + changes.push('substances') + } + + let titulaireIds = 'fondamentale' in etape ? etape.fondamentale.titulaireIds ?? [] : [] + if (isNullOrUndefinedOrEmpty(titulaireIds) && isNotNullNorUndefinedNorEmpty(propsHeritees.titulaireIds) ) { + titulaireIds = propsHeritees.titulaireIds + changes.push('titulaireIds') + } + let perimetre = 'fondamentale' in etape ? { + surface: etape.fondamentale.perimetre?.surface, + geojson4326Perimetre:etape.fondamentale.perimetre?.geojson4326_perimetre, + geojsonOriginePerimetre: etape.fondamentale.perimetre?.geojson_origine_perimetre, + geojsonOrigineGeoSystemeId: etape.fondamentale.perimetre?.geojson_origine_geo_systeme_id, + geojson4326Points: etape.fondamentale.perimetre?.geojson4326_points, + geojsonOriginePoints: etape.fondamentale.perimetre?.geojson_origine_points, + geojson4326Forages: etape.fondamentale.perimetre?.geojson4326_forages, + geojsonOrigineForages: etape.fondamentale.perimetre?.geojson_origine_forages, + } : null + if (isNullOrUndefined(perimetre?.geojsonOriginePerimetre) && isNotNullNorUndefined(propsHeritees.perimetre?.geojson_origine_perimetre) ) { + perimetre = { + surface: propsHeritees.perimetre.surface, + geojson4326Perimetre:propsHeritees.perimetre.geojson4326_perimetre, + geojsonOriginePerimetre: propsHeritees.perimetre.geojson_origine_perimetre, + geojsonOrigineGeoSystemeId: propsHeritees.perimetre.geojson_origine_geo_systeme_id, + geojson4326Points: propsHeritees.perimetre.geojson4326_points, + geojsonOriginePoints: propsHeritees.perimetre.geojson_origine_points, + geojson4326Forages: propsHeritees.perimetre.geojson4326_forages, + geojsonOrigineForages: propsHeritees.perimetre.geojson_origine_forages, + } + changes.push('perimetre') + } + + if (isNotNullNorUndefinedNorEmpty(changes)) { + console.info(`Trying to fix http://localhost:4180/etapes/${etape.slug} -> ${changes.join(',')}`) + } + return titreEtapeUpsert( { id: etape.id, titreDemarcheId: checkedProlongation.demarche_id, date: etape.date, - substances: 'fondamentale' in etape && isNotNullNorUndefinedNorEmpty(etape.fondamentale.substances) ? etape.fondamentale.substances : propsHeritees.substances, - titulaireIds: 'fondamentale' in etape && isNotNullNorUndefinedNorEmpty(etape.fondamentale.titulaireIds) ? etape.fondamentale.titulaireIds : propsHeritees.titulaireIds, - surface: 'fondamentale' in etape && isNotNullNorUndefined(etape.fondamentale.perimetre?.surface) ? etape.fondamentale.perimetre.surface : propsHeritees.perimetre?.surface, - geojson4326Perimetre: - 'fondamentale' in etape && isNotNullNorUndefined(etape.fondamentale.perimetre?.geojson4326_perimetre) - ? etape.fondamentale.perimetre.geojson4326_perimetre - : propsHeritees.perimetre?.geojson4326_perimetre, - geojsonOriginePerimetre: - 'fondamentale' in etape && isNotNullNorUndefined(etape.fondamentale.perimetre?.geojson_origine_perimetre) - ? etape.fondamentale.perimetre.geojson_origine_perimetre - : propsHeritees.perimetre?.geojson_origine_perimetre, - geojsonOrigineGeoSystemeId: - 'fondamentale' in etape && isNotNullNorUndefined(etape.fondamentale.perimetre?.geojson_origine_geo_systeme_id) - ? etape.fondamentale.perimetre.geojson_origine_geo_systeme_id - : propsHeritees.perimetre?.geojson_origine_geo_systeme_id, + duree, + substances, + titulaireIds, + ...perimetre, }, userSuper, titre.id @@ -258,6 +293,7 @@ const toPercentage = (percentage: number): string => { export const checkProlongations = (pool: Pool): Effect.Effect<CheckedProlongation[], CaminoError<CheckOnePrologationErrors | FixProlongationErrors>> => { return pipe( getDemarches(pool), + // Effect.map(demarches => demarches.filter(demarche => demarche.id ==='QKSsuiWOMTf9WfMNGVoTLEVm')), Effect.flatMap(demarches => { const initialAcc: CheckedProlongation[] = [] return Effect.reduce( -- GitLab From dbeb74db6b48e805d819e591daf730bc8600b178 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bitard=20Micha=C3=ABl?= <bitard.michael@gmail.com> Date: Tue, 1 Apr 2025 14:23:43 +0200 Subject: [PATCH 2/3] lint --- .../api/src/business/check-prolongations.ts | 39 ++++++++++--------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/packages/api/src/business/check-prolongations.ts b/packages/api/src/business/check-prolongations.ts index 2aa33a0f9..414be280a 100644 --- a/packages/api/src/business/check-prolongations.ts +++ b/packages/api/src/business/check-prolongations.ts @@ -207,7 +207,7 @@ const fixProlongation = (pool: Pool, checkedProlongation: CheckedProlongation): substances: getMostRecentValuePropFromEtapeFondamentaleValide('substances', demarches), titulaireIds: getMostRecentValuePropFromEtapeFondamentaleValide('titulaireIds', demarches), perimetre: getMostRecentValuePropFromEtapeFondamentaleValide('perimetre', demarches), - duree: getMostRecentValuePropFromEtapeFondamentaleValide('duree', [...demarches.filter(demarche => demarche.id === checkedProlongation.demarche_id)]) + duree: getMostRecentValuePropFromEtapeFondamentaleValide('duree', [...demarches.filter(demarche => demarche.id === checkedProlongation.demarche_id)]), } }) ) @@ -217,36 +217,39 @@ const fixProlongation = (pool: Pool, checkedProlongation: CheckedProlongation): try: () => { const changes = [] let duree = 'fondamentale' in etape ? etape.fondamentale.duree : null - if ((isNullOrUndefined(duree) || duree === 0) && (isNotNullNorUndefined(propsHeritees.duree) && propsHeritees.duree !== 0)) { + if ((isNullOrUndefined(duree) || duree === 0) && isNotNullNorUndefined(propsHeritees.duree) && propsHeritees.duree !== 0) { duree = propsHeritees.duree changes.push('duree') } - let substances = 'fondamentale' in etape ? etape.fondamentale.substances ?? [] : [] - if (isNullOrUndefinedOrEmpty(substances) && isNotNullNorUndefinedNorEmpty(propsHeritees.substances) ) { + let substances = 'fondamentale' in etape ? (etape.fondamentale.substances ?? []) : [] + if (isNullOrUndefinedOrEmpty(substances) && isNotNullNorUndefinedNorEmpty(propsHeritees.substances)) { substances = propsHeritees.substances changes.push('substances') } - let titulaireIds = 'fondamentale' in etape ? etape.fondamentale.titulaireIds ?? [] : [] - if (isNullOrUndefinedOrEmpty(titulaireIds) && isNotNullNorUndefinedNorEmpty(propsHeritees.titulaireIds) ) { + let titulaireIds = 'fondamentale' in etape ? (etape.fondamentale.titulaireIds ?? []) : [] + if (isNullOrUndefinedOrEmpty(titulaireIds) && isNotNullNorUndefinedNorEmpty(propsHeritees.titulaireIds)) { titulaireIds = propsHeritees.titulaireIds changes.push('titulaireIds') } - let perimetre = 'fondamentale' in etape ? { - surface: etape.fondamentale.perimetre?.surface, - geojson4326Perimetre:etape.fondamentale.perimetre?.geojson4326_perimetre, - geojsonOriginePerimetre: etape.fondamentale.perimetre?.geojson_origine_perimetre, - geojsonOrigineGeoSystemeId: etape.fondamentale.perimetre?.geojson_origine_geo_systeme_id, - geojson4326Points: etape.fondamentale.perimetre?.geojson4326_points, - geojsonOriginePoints: etape.fondamentale.perimetre?.geojson_origine_points, - geojson4326Forages: etape.fondamentale.perimetre?.geojson4326_forages, - geojsonOrigineForages: etape.fondamentale.perimetre?.geojson_origine_forages, - } : null - if (isNullOrUndefined(perimetre?.geojsonOriginePerimetre) && isNotNullNorUndefined(propsHeritees.perimetre?.geojson_origine_perimetre) ) { + let perimetre = + 'fondamentale' in etape + ? { + surface: etape.fondamentale.perimetre?.surface, + geojson4326Perimetre: etape.fondamentale.perimetre?.geojson4326_perimetre, + geojsonOriginePerimetre: etape.fondamentale.perimetre?.geojson_origine_perimetre, + geojsonOrigineGeoSystemeId: etape.fondamentale.perimetre?.geojson_origine_geo_systeme_id, + geojson4326Points: etape.fondamentale.perimetre?.geojson4326_points, + geojsonOriginePoints: etape.fondamentale.perimetre?.geojson_origine_points, + geojson4326Forages: etape.fondamentale.perimetre?.geojson4326_forages, + geojsonOrigineForages: etape.fondamentale.perimetre?.geojson_origine_forages, + } + : null + if (isNullOrUndefined(perimetre?.geojsonOriginePerimetre) && isNotNullNorUndefined(propsHeritees.perimetre?.geojson_origine_perimetre)) { perimetre = { surface: propsHeritees.perimetre.surface, - geojson4326Perimetre:propsHeritees.perimetre.geojson4326_perimetre, + geojson4326Perimetre: propsHeritees.perimetre.geojson4326_perimetre, geojsonOriginePerimetre: propsHeritees.perimetre.geojson_origine_perimetre, geojsonOrigineGeoSystemeId: propsHeritees.perimetre.geojson_origine_geo_systeme_id, geojson4326Points: propsHeritees.perimetre.geojson4326_points, -- GitLab From 293f5dae895450b4d7e19d02076f1ac7fff4afe5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bitard=20Micha=C3=ABl?= <bitard.michael@gmail.com> Date: Tue, 1 Apr 2025 14:25:38 +0200 Subject: [PATCH 3/3] lint --- packages/api/src/business/check-prolongations.ts | 8 -------- 1 file changed, 8 deletions(-) diff --git a/packages/api/src/business/check-prolongations.ts b/packages/api/src/business/check-prolongations.ts index 414be280a..370e61b2d 100644 --- a/packages/api/src/business/check-prolongations.ts +++ b/packages/api/src/business/check-prolongations.ts @@ -296,7 +296,6 @@ const toPercentage = (percentage: number): string => { export const checkProlongations = (pool: Pool): Effect.Effect<CheckedProlongation[], CaminoError<CheckOnePrologationErrors | FixProlongationErrors>> => { return pipe( getDemarches(pool), - // Effect.map(demarches => demarches.filter(demarche => demarche.id ==='QKSsuiWOMTf9WfMNGVoTLEVm')), Effect.flatMap(demarches => { const initialAcc: CheckedProlongation[] = [] return Effect.reduce( @@ -313,13 +312,6 @@ export const checkProlongations = (pool: Pool): Effect.Effect<CheckedProlongatio return fixProlongation(pool, checkedProlongation) }), Effect.map(checkedProlongation => { - // if (isNotNullNorUndefinedNorEmpty(checkedProlongation.errors) && !checkedProlongation.errors.includes(demarchePasProlongationError)) { - // const link = isNotNullNorUndefined(checkedProlongation.titre_slug) - // ? `http://localhost:4180/titres/${checkedProlongation.titre_slug}` - // : `http://localhost:4180/demarches/${checkedProlongation.demarche_id}` - // console.info(`${link} : ${checkedProlongation.errors.join(' | ')}`) - // } - return [...acc, checkedProlongation] }) ) -- GitLab