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