From 797b4633db3f4650476e9a8bc36a6990d552c653 Mon Sep 17 00:00:00 2001
From: Agustin Ruiz Diaz <agustin.ruiz.diaz@fing.edu.uy>
Date: Thu, 16 Sep 2021 19:05:10 -0300
Subject: [PATCH] calculator route updated, AgeGroupJSON new definition,
 EnergeticRequirement totalOfPeople field added, Parser updated.

---
 src/DTOs/AgeGroupJSON.ts            |  4 ++--
 src/DTOs/EnergeticRequirementDTO.ts |  1 +
 src/Services/ERCalculator.ts        |  1 +
 src/Services/ParserService.ts       | 15 ++++++++-------
 src/routes.ts                       |  5 ++++-
 5 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/src/DTOs/AgeGroupJSON.ts b/src/DTOs/AgeGroupJSON.ts
index b004c5b..c8a111c 100644
--- a/src/DTOs/AgeGroupJSON.ts
+++ b/src/DTOs/AgeGroupJSON.ts
@@ -1,8 +1,8 @@
 type AgeGroupJSON = {
   edad: string;
   sexo: string;
-  pesoMediano: number;
-  cantidad: number;
+  pesoMediano: string;
+  cantidad: string;
 };
 
 export default AgeGroupJSON;
diff --git a/src/DTOs/EnergeticRequirementDTO.ts b/src/DTOs/EnergeticRequirementDTO.ts
index fbf14e4..ef11f41 100644
--- a/src/DTOs/EnergeticRequirementDTO.ts
+++ b/src/DTOs/EnergeticRequirementDTO.ts
@@ -1,6 +1,7 @@
 type EnergeticRequirement = {
   requerimientoEnergeticoPerCapita: number;
   requerimientoEnergeticoTotal: number;
+  poblacionTotal: number;
 };
 
 export default EnergeticRequirement;
diff --git a/src/Services/ERCalculator.ts b/src/Services/ERCalculator.ts
index e656ef9..6be7f98 100644
--- a/src/Services/ERCalculator.ts
+++ b/src/Services/ERCalculator.ts
@@ -76,6 +76,7 @@ const calculateER = (groupParameters: Map<number[], AgeGroup>): CalculatorRespon
   const totalER: EnergeticRequirement = {
     requerimientoEnergeticoPerCapita: totalRequirement / totalOfPeople,
     requerimientoEnergeticoTotal: totalRequirement,
+    poblacionTotal: totalOfPeople,
   };
 
   const result: CalculatorResponse = {
diff --git a/src/Services/ParserService.ts b/src/Services/ParserService.ts
index 9600284..b9aedc9 100644
--- a/src/Services/ParserService.ts
+++ b/src/Services/ParserService.ts
@@ -162,14 +162,15 @@ import Sex from '../Enum/Sex';
 const parseGroups = (groups: AgeGroupJSON[]): AgeGroup[] => {
   const retGroups: AgeGroup[] = [];
   groups.forEach((obj: AgeGroupJSON) => {
-    if (typeof (obj.pesoMediano) !== 'number' || typeof (obj.cantidad) !== 'number') {
-      throw new Error('Parsing error, attributes do not respect format');
-    }
+    // if (typeof (obj.pesoMediano) !== 'number' || typeof (obj.cantidad) !== 'number') {
+    //  console.log('Estas haciendo cualquiera flaco');
+    //  throw new Error('Parsing error, attributes do not respect format');
+    // }
     const group: AgeGroup = {
       edad: obj.edad as AgeBracket,
       sexo: obj.sexo as Sex,
-      pesoMediano: obj.pesoMediano,
-      cantidad: obj.cantidad,
+      pesoMediano: parseFloat(obj.pesoMediano),
+      cantidad: parseFloat(obj.cantidad),
     };
     retGroups.push(group);
   });
@@ -180,8 +181,8 @@ const unparseGroup = (group: AgeGroup): AgeGroupJSON => {
   const retGroup: AgeGroupJSON = {
     edad: group.edad as string,
     sexo: group.sexo as string,
-    pesoMediano: group.pesoMediano,
-    cantidad: group.cantidad,
+    pesoMediano: String(group.pesoMediano),
+    cantidad: String(group.cantidad),
   };
   return retGroup;
 };
diff --git a/src/routes.ts b/src/routes.ts
index 1e83e85..c0ea909 100644
--- a/src/routes.ts
+++ b/src/routes.ts
@@ -1,6 +1,7 @@
 import { Request, Response, Router } from 'express';
 import SheetController from './Controllers/SheetController';
 import CalculatorController from './Controllers/CalculatorController';
+import ParameterController from './Controllers/ParameterController';
 
 const router = Router();
 
@@ -10,6 +11,8 @@ router.get('/', (req: Request, res: Response): void => {
 
 router.use('/sheetParser', SheetController);
 
-router.use('/REPcalculator', CalculatorController);
+router.use('/repCalculator', CalculatorController);
+
+router.use('/parameters', ParameterController);
 
 export default router;
-- 
GitLab