From b9cc7ced4efcb0db95b761d5e7b082fd31f75b12 Mon Sep 17 00:00:00 2001
From: Agustin <agusr1999@gmail.com>
Date: Sat, 11 Sep 2021 17:44:34 -0300
Subject: [PATCH] Refactor de algunas cosas para cumplir reqs del linter

La funcion getEquationValues de servicio parametro no esta hecha todavia, cuando este hecha hay que llamarla desde calculator controller
---
 src/Controllers/CalculatorController.ts       |  2 +-
 .../AgeGroup.ts => DTOs/AgeGroupDTO.ts}       |  6 +-
 src/DTOs/CalculatorResponseDTO.ts             |  9 +-
 .../EnergeticRequirementDTO.ts}               |  2 +-
 src/Services/CalculatorService.ts             | 16 +++-
 src/Services/ERCalculator.ts                  | 82 +++++++++----------
 6 files changed, 65 insertions(+), 52 deletions(-)
 rename src/{Models/AgeGroup.ts => DTOs/AgeGroupDTO.ts} (57%)
 rename src/{Models/EnergeticRequirement.ts => DTOs/EnergeticRequirementDTO.ts} (94%)

diff --git a/src/Controllers/CalculatorController.ts b/src/Controllers/CalculatorController.ts
index a82f3b6..4e15f0f 100644
--- a/src/Controllers/CalculatorController.ts
+++ b/src/Controllers/CalculatorController.ts
@@ -1,7 +1,7 @@
 import {
   Handler, Request, Response, Router,
 } from 'express';
-import AgeGroup from '../Models/AgeGroup';
+import AgeGroup from '../DTOs/AgeGroupDTO';
 import CalculatorService from '../Services/CalculatorService';
 import CalculatorResponse from '../DTOs/CalculatorResponseDTO';
 
diff --git a/src/Models/AgeGroup.ts b/src/DTOs/AgeGroupDTO.ts
similarity index 57%
rename from src/Models/AgeGroup.ts
rename to src/DTOs/AgeGroupDTO.ts
index 2ef8fa8..5acf22c 100644
--- a/src/Models/AgeGroup.ts
+++ b/src/DTOs/AgeGroupDTO.ts
@@ -1,11 +1,11 @@
-import AgeBracket from '../Enum/AgeBracket'
-import Sex from '../Enum/Sex'
+import AgeBracket from '../Enum/AgeBracket';
+import Sex from '../Enum/Sex';
 
 type AgeGroup = {
   edad: AgeBracket;
   sexo: Sex;
   pesoMediano: number;
   cantidad: number;
-}
+};
 
 export default AgeGroup;
diff --git a/src/DTOs/CalculatorResponseDTO.ts b/src/DTOs/CalculatorResponseDTO.ts
index c0c792d..520aea6 100644
--- a/src/DTOs/CalculatorResponseDTO.ts
+++ b/src/DTOs/CalculatorResponseDTO.ts
@@ -1,10 +1,9 @@
-import exp from 'constants';
-import AgeGroup from '../Models/AgeGroup';
-import EnergeticRequirement from '../Models/EnergeticRequirement';
+import AgeGroup from './AgeGroupDTO';
+import EnergeticRequirement from './EnergeticRequirementDTO';
 
-type CalculatorResponseDTO = {
+type CalculatorResponse = {
   requerimientosPorGrupo: Map<AgeGroup, EnergeticRequirement>;
   requerimientoTotal: EnergeticRequirement;
 };
 
-export default CalculatorResponseDTO;
+export default CalculatorResponse;
diff --git a/src/Models/EnergeticRequirement.ts b/src/DTOs/EnergeticRequirementDTO.ts
similarity index 94%
rename from src/Models/EnergeticRequirement.ts
rename to src/DTOs/EnergeticRequirementDTO.ts
index b1005f8..fbf14e4 100644
--- a/src/Models/EnergeticRequirement.ts
+++ b/src/DTOs/EnergeticRequirementDTO.ts
@@ -1,6 +1,6 @@
 type EnergeticRequirement = {
   requerimientoEnergeticoPerCapita: number;
   requerimientoEnergeticoTotal: number;
-}
+};
 
 export default EnergeticRequirement;
diff --git a/src/Services/CalculatorService.ts b/src/Services/CalculatorService.ts
index 9a2ecae..36c4909 100644
--- a/src/Services/CalculatorService.ts
+++ b/src/Services/CalculatorService.ts
@@ -1 +1,15 @@
-import AgeGroup from "../Models/AgeGroup";
\ No newline at end of file
+import ERCalculator from './ERCalculator';
+import AgeGroup from '../DTOs/AgeGroupDTO';
+import CalculatorResponse from '../DTOs/CalculatorResponseDTO';
+
+const calculateEnergeticRequirement = (ageGroups: AgeGroup[]): CalculatorResponse => {
+  const parametros = new Map<number[], AgeGroup>();
+  const params: number[] = [0, 0, 0];
+  ageGroups.forEach((group: AgeGroup) => {
+    parametros.set(params, group);
+  });
+  const res: CalculatorResponse = ERCalculator.calculateER(parametros);
+  return res;
+};
+
+export default { calculateEnergeticRequirement };
diff --git a/src/Services/ERCalculator.ts b/src/Services/ERCalculator.ts
index 684fb08..fa7c927 100644
--- a/src/Services/ERCalculator.ts
+++ b/src/Services/ERCalculator.ts
@@ -1,41 +1,41 @@
-import AgeGroup from '../Models/AgeGroup';
-import EnergeticRequirement from '../Models/EnergeticRequirement';
-import CalculatorResponseDTO from '../DTOs/CalculatorResponseDTO';
-
-const calculateER = (groupParameters: Map<number[], AgeGroup>): CalculatorResponseDTO => {
-  let totalOfPeople = 0;
-  let totalRequirement = 0;
-
-  const requirements = new Map();
-
-  groupParameters.forEach((group: AgeGroup, parameters: number[]) => {
-    totalOfPeople = +group.cantidad;
-
-    const requirement = parameters[0]
-    + (parameters[1] * group.pesoMediano)
-    + (parameters[2] * group.pesoMediano);
-
-    const groupRequirement: EnergeticRequirement = {
-      requerimientoEnergeticoPerCapita: requirement,
-      requerimientoEnergeticoTotal: requirement * group.cantidad,
-    };
-
-    totalRequirement = +groupRequirement.requerimientoEnergeticoTotal;
-
-    requirements.set(group, groupRequirement);
-  });
-
-  const totalER: EnergeticRequirement = {
-    requerimientoEnergeticoPerCapita: totalRequirement / totalOfPeople,
-    requerimientoEnergeticoTotal: totalOfPeople,
-  };
-
-  const result: CalculatorResponseDTO = {
-    requerimientosPorGrupo: requirements,
-    requerimientoTotal: totalER,
-  };
-
-  return result;
-};
-
-export default { calculateER };
+import AgeGroup from '../DTOs/AgeGroupDTO';
+import EnergeticRequirement from '../DTOs/EnergeticRequirementDTO';
+import CalculatorResponse from '../DTOs/CalculatorResponseDTO';
+
+const calculateER = (groupParameters: Map<number[], AgeGroup>): CalculatorResponse => {
+  let totalOfPeople = 0;
+  let totalRequirement = 0;
+
+  const requirements = new Map();
+
+  groupParameters.forEach((group: AgeGroup, parameters: number[]) => {
+    totalOfPeople = +group.cantidad;
+
+    const requirement = parameters[0]
+    + (parameters[1] * group.pesoMediano)
+    + (parameters[2] * group.pesoMediano);
+
+    const groupRequirement: EnergeticRequirement = {
+      requerimientoEnergeticoPerCapita: requirement,
+      requerimientoEnergeticoTotal: requirement * group.cantidad,
+    };
+
+    totalRequirement = +groupRequirement.requerimientoEnergeticoTotal;
+
+    requirements.set(group, groupRequirement);
+  });
+
+  const totalER: EnergeticRequirement = {
+    requerimientoEnergeticoPerCapita: totalRequirement / totalOfPeople,
+    requerimientoEnergeticoTotal: totalOfPeople,
+  };
+
+  const result: CalculatorResponse = {
+    requerimientosPorGrupo: requirements,
+    requerimientoTotal: totalER,
+  };
+
+  return result;
+};
+
+export default { calculateER };
-- 
GitLab