Skip to content

Commit

Permalink
fix: validation niveau de certification dans l'API
Browse files Browse the repository at this point in the history
Signed-off-by: Maud Royer <[email protected]>
  • Loading branch information
jillro committed Jun 28, 2024
1 parent 23858e9 commit 46998cb
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
8 changes: 7 additions & 1 deletion lib/outputs/record.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,19 @@ function normalizeRecordSummary (record) {

/**
* @param {String} etat
* @param {object} options
* @param {boolean} options.strict
* @returns {EtatProduction|String}
*/
function normalizeEtatProduction (etat) {
function normalizeEtatProduction (etat, options = { strict: false }) {
if (Object.hasOwn(EtatProduction, etat)) {
return EtatProduction[etat]
}

if (options.strict) {
throw new Error(`EtatProduction invalide: ${etat}`)
}

return etat
}

Expand Down
9 changes: 8 additions & 1 deletion lib/providers/cartobio.js
Original file line number Diff line number Diff line change
Expand Up @@ -1119,6 +1119,13 @@ async function * parseAPIParcellaireStream (stream, { organismeCertificateur })
const pac = parsePacDetailsFromComment(parcelle.commentaire)
const numeroIlot = parseInt(String(parcelle.numeroIlot), 10)
const numeroParcelle = parseInt(String(parcelle.numeroParcelle), 10)
let conversionNiveau
try {
conversionNiveau = parcelle.etatProduction && normalizeEtatProduction(parcelle.etatProduction, { strict: true })
} catch (error) {
hasFeatureError = new Error('champ etatProduction incorrect')
return null
}

const properties = {
id,
Expand All @@ -1133,7 +1140,7 @@ async function * parseAPIParcellaireStream (stream, { organismeCertificateur })
NUMERO_I: Number.isNaN(numeroIlot) ? (pac.numeroIlot ?? '') : String(numeroIlot),
NUMERO_P: Number.isNaN(numeroParcelle) ? (pac.numeroParcelle ?? '') : String(numeroParcelle),
PACAGE: record.numeroPacage ? String(record.numeroPacage) : null,
conversion_niveau: normalizeEtatProduction(parcelle.etatProduction),
conversion_niveau: conversionNiveau,
engagement_date: parcelle.dateEngagement ?? null,
auditeur_notes: parcelle.commentaire ?? null
}
Expand Down

0 comments on commit 46998cb

Please sign in to comment.