diff --git a/src/Config/Constants.ts b/src/Config/Constants.ts index 8baaf85557a99482033bf75be917165390b8ddd4..7331d938932caff351d34e3c0b8dca09244b47f8 100644 --- a/src/Config/Constants.ts +++ b/src/Config/Constants.ts @@ -5,7 +5,7 @@ export const SheetNames = { MUJERES_MENORES: 'Mujeres<1', }; -export const extraDataIDs = { +export const extraDataIDs: {[key: string]: string} = { minLowPrev: 'minorLowPrevalence', minModPrev: 'minorModeratePrevalence', minIntPrev: 'minorIntensePrevalence', diff --git a/src/Services/ParameterService.ts b/src/Services/ParameterService.ts index 8bb2070783faf5b84f62518d2e4e38a9f588e46a..a6a3456f12975006098921c3b0ddeb91ec2b9afd 100644 --- a/src/Services/ParameterService.ts +++ b/src/Services/ParameterService.ts @@ -286,6 +286,16 @@ const updatePair = async (param: DefaultExtraDataDTO, pairID: string): Promise<v }); }; +const validateID = (id: string): boolean => { + const keys: string[] = Object.keys(extraDataIDs); + for (let i = 0; i < keys.length; i + 1) { + if (extraDataIDs[keys[i]] === id) { + return true; + } + } + return false; +}; + const updateExtraData = async (parameters: DefaultExtraDataDTO[]): Promise<void> => { const ids: string[] = []; let total = 0; @@ -313,7 +323,7 @@ const updateExtraData = async (parameters: DefaultExtraDataDTO[]): Promise<void> await updatePair(parameters[0], extraDataIDs.rurAdultLowPerc); } else if (ids.includes(extraDataIDs.rurAdultLowPerc)) { await updatePair(parameters[0], extraDataIDs.rurAdultActPerc); - } else { + } else if (validateID(parameters[0].id)) { await DefaultExtraData.update( { value: parameters[0].value }, { @@ -324,6 +334,8 @@ const updateExtraData = async (parameters: DefaultExtraDataDTO[]): Promise<void> ).catch((err) => { throw err; }); + } else { + throw new Error('Invalid parameter ID'); } };