From 052dd45748f489483e249eb0328940e73291a5fb Mon Sep 17 00:00:00 2001 From: Bastien Dumont <bdumont@grandlyon.com> Date: Mon, 20 Mar 2023 15:27:36 +0100 Subject: [PATCH] sanitizeName --- src/core/verifyUserIdentity.js | 12 +++++++----- src/helpers/sanitizeName.js | 28 ++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 src/helpers/sanitizeName.js diff --git a/src/core/verifyUserIdentity.js b/src/core/verifyUserIdentity.js index 4f2dc96..6260222 100644 --- a/src/core/verifyUserIdentity.js +++ b/src/core/verifyUserIdentity.js @@ -8,6 +8,7 @@ const { removeAddressNumber, } = require('../helpers/parsing') const Sentry = require('@sentry/node') +const { sanitizeLastname } = require('../helpers/sanitizeName') /** * Verify user identity @@ -31,6 +32,7 @@ async function verifyUserIdentity( if (!isAlternateStart) { inseeCode = await getInseeCode(fields.postalCode, fields.city) } + const lastname = sanitizeLastname(fields.lastname) // Store if user is going through safety sge onboarding let userSafetyOnBoarding = false @@ -40,7 +42,7 @@ async function verifyUserIdentity( `${baseUrl}/enedis_SDE_recherche-point/1.0`, apiAuthKey, loginUtilisateur, - fields.lastname, + lastname, fields.address, fields.postalCode, inseeCode @@ -68,7 +70,7 @@ async function verifyUserIdentity( `${baseUrl}/enedis_SDE_recherche-point/1.0`, apiAuthKey, loginUtilisateur, - fields.lastname, + lastname, removeMultipleSpaces(userAddress.numeroEtNomVoie), userAddress.codePostal, userAddress.commune.$.code, @@ -82,7 +84,7 @@ async function verifyUserIdentity( `${baseUrl}/enedis_SDE_recherche-point/1.0`, apiAuthKey, loginUtilisateur, - fields.lastname, + lastname, removeMultipleSpaces(removeAddressNumber(userAddress.numeroEtNomVoie)), userAddress.codePostal, userAddress.commune.$.code @@ -96,7 +98,7 @@ async function verifyUserIdentity( `${baseUrl}/enedis_SDE_recherche-point/1.0`, apiAuthKey, loginUtilisateur, - fields.lastname, + lastname, removeMultipleSpaces(removeAddressNumber(userAddress.numeroEtNomVoie)), userAddress.codePostal, userAddress.commune.$.code, @@ -122,7 +124,7 @@ async function verifyUserIdentity( } return { - lastname: fields.lastname, + lastname: lastname, firstname: fields.firstname, pointId: fields.pointId, inseeCode, diff --git a/src/helpers/sanitizeName.js b/src/helpers/sanitizeName.js new file mode 100644 index 0000000..8c9016f --- /dev/null +++ b/src/helpers/sanitizeName.js @@ -0,0 +1,28 @@ +const REPLACE_CHARS = { + â: 'a', + ê: 'e', + î: 'i', + ô: 'o', + û: 'u', + ä: 'a', + ë: 'e', + ï: 'i', + ö: 'o', + ü: 'u', + é: 'e', + è: 'e', + ç: 'c', +} + +/** + * Clean lastname input and remove all accents but not ʼ, ', - + * @param {string} lastname + * @return {string} lastnameSanitized + */ +function sanitizeLastname(lastname) { + return lastname + .replace(/[âêîôûäëïüéèç]/g, match => REPLACE_CHARS[match]) + .trim() +} + +module.exports = { sanitizeLastname } -- GitLab