From 32aeea5456e55aace86a3e34e7fd6b2291f2bc4b Mon Sep 17 00:00:00 2001
From: Agustin <agusr1999@gmail.com>
Date: Tue, 19 Oct 2021 14:46:35 -0300
Subject: [PATCH] Added invalid id error to parameter update

---
 src/Config/Constants.ts          |  2 +-
 src/Services/ParameterService.ts | 14 +++++++++++++-
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/Config/Constants.ts b/src/Config/Constants.ts
index 8baaf85..7331d93 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 8bb2070..a6a3456 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');
   }
 };
 
-- 
GitLab