From 15b04f4fee4a24e52488a13d31a8330a6efa6001 Mon Sep 17 00:00:00 2001
From: Agustin Ruiz Diaz <agustin.ruiz.diaz@fing.edu.uy>
Date: Thu, 7 Oct 2021 10:16:14 -0300
Subject: [PATCH] getParameters on Controller

---
 src/Controllers/ParameterController.ts | 14 ++++++++++++-
 src/Services/ParameterService.ts       | 27 ++++++++++++++++++++------
 2 files changed, 34 insertions(+), 7 deletions(-)

diff --git a/src/Controllers/ParameterController.ts b/src/Controllers/ParameterController.ts
index 0166c4f..cfc9325 100644
--- a/src/Controllers/ParameterController.ts
+++ b/src/Controllers/ParameterController.ts
@@ -7,6 +7,17 @@ import ParameterService from '../Services/ParameterService';
 
 const router = Router();
 
+const getParameters: Handler = async (req: Request, res: Response) => {
+  try {
+    const parameters = await ParameterService.getParameters();
+    return res.status(200).send(parameters);
+  } catch (error) {
+    const e = error as Error;
+    logger.info(e.message);
+    return res.status(400).json({ error: e.message });
+  }
+};
+
 const getParametersOfType: Handler = async (req: Request, res: Response) => {
   const { paramType } = req.body;
   try {
@@ -19,6 +30,7 @@ const getParametersOfType: Handler = async (req: Request, res: Response) => {
   }
 };
 
-router.post('/', getParametersOfType);
+router.post('/', getParameters);
+router.post('/type/', getParametersOfType);
 
 export default router;
diff --git a/src/Services/ParameterService.ts b/src/Services/ParameterService.ts
index ccd5b73..9af098d 100644
--- a/src/Services/ParameterService.ts
+++ b/src/Services/ParameterService.ts
@@ -1,6 +1,5 @@
 import ParameterDTO from '../DTOs/ParameterDTO';
 import AgeBracket from '../Enum/AgeBracket';
-import ParameterType from '../Enum/ParameterType';
 import Sex from '../Enum/Sex';
 import ParameterMapper from '../Mappers/ParameterMapper';
 import Parameter from '../Models/Parameter';
@@ -337,16 +336,32 @@ const getEquationValues = (ageBracket: AgeBracket, sex: Sex): number[] => {
   return res;
 };
 
-const getParametersOfType = async (paramType: ParameterType): Promise<ParameterDTO[]> => {
+const getParameters = async (): Promise<ParameterDTO[]> => {
   const res: ParameterDTO[] = [];
-  const estaChota = Parameter.findAll()
-    .then((parameters) => parameters.forEach((param: Parameter) => {
+  await Parameter.findAll().then((parameters: Parameter[]) => {
+    parameters.forEach((param: Parameter) => {
       res.push(ParameterMapper.parameterToData(param));
-    }))
+    });
+  });
+  return res;
+};
+
+const getParametersOfType = async (paramType: string): Promise<ParameterDTO[]> => {
+  const res: ParameterDTO[] = [];
+  await Parameter.findAll({
+    where: {
+      parameterType: paramType,
+    },
+  })
+    .then((parameters: Parameter[]) => {
+      parameters.forEach((param: Parameter) => {
+        res.push(ParameterMapper.parameterToData(param));
+      });
+    })
     .catch((err) => {
       throw new Error(err);
     });
   return res;
 };
 
-export default { getEquationValues, getParametersOfType };
+export default { getEquationValues, getParameters, getParametersOfType };
-- 
GitLab