diff --git a/package-lock.json b/package-lock.json index c007368bdf7e4b6b8f117743c73420c19a09c580..a871c7fd522d67f0d99515b449858c36af0b4636 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3805,6 +3805,11 @@ "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", "dev": true }, + "helmet": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-4.6.0.tgz", + "integrity": "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==" + }, "hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", diff --git a/package.json b/package.json index 12c97c56e5ee0fa24dc0e943f12e56b418236c62..bd0ac15ccc778c20fef5e6b88567514ee7778f2d 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "dotenv": "^10.0.0", "express": "^4.17.1", "gulp-eslint": "^6.0.0", + "helmet": "^4.6.0", "openapi-types": "^9.3.0", "swagger-jsdoc": "^6.1.0", "swagger-ui-express": "^4.1.6", diff --git a/src/Config/Constants.ts b/src/Config/Constants.ts new file mode 100644 index 0000000000000000000000000000000000000000..6f2b9755a81eaa92b7ead75db327b4710888f7f0 --- /dev/null +++ b/src/Config/Constants.ts @@ -0,0 +1,6 @@ +export const SheetNames = { + HOMBRES: 'Hombres', + MUJERES: 'Mujeres', + HOMBRES_MENORES: 'Hombres<1', + MUJERES_MENORES: 'Mujeres<1', +}; diff --git a/src/Services/SheetService.ts b/src/Services/SheetService.ts index 79f94f559f76761daa7232daf033ba181fed1962..947b1b0998d3b74ea107177cfbbd297d41962c12 100644 --- a/src/Services/SheetService.ts +++ b/src/Services/SheetService.ts @@ -1,4 +1,5 @@ import * as XLSX from 'xlsx'; +import { SheetNames } from '../Config/Constants'; import { SheetParserResponse, Menores, Mayores, MenoresSheet, MayoresSheet, } from '../Models/SheetParserResponse'; @@ -19,7 +20,7 @@ import { // return work; // }; -const parseMen = (worksheet: XLSX.WorkSheet): Mayores[] => { +const parseAdults = (worksheet: XLSX.WorkSheet): Mayores[] => { const res: Mayores[] = []; const ref = worksheet['!ref']; if (ref === undefined) throw new Error('An error ocurred'); @@ -42,43 +43,7 @@ const parseMen = (worksheet: XLSX.WorkSheet): Mayores[] => { return res; }; -const parseWomen = (worksheet: XLSX.WorkSheet): Mayores[] => { - const res: Mayores[] = []; - const ref = worksheet['!ref']; - if (ref === undefined) throw new Error('An error ocurred'); - const range = XLSX.utils.decode_range(ref); - range.s.c = 0; - range.e.c = 2; - const newRange = XLSX.utils.encode_range(range); - - const aux = XLSX.utils.sheet_to_json(worksheet, { range: newRange }) as unknown as MayoresSheet[]; - aux.forEach((element: MayoresSheet) => { - res.push( - { - edad: element['Edad (años)'], - peso: element['Peso (Kg)'], - talla: element['Talla (cm)'], - }, - ); - }); - return res; -}; - -const parseMenLessThanAYear = (worksheet: XLSX.WorkSheet): Menores[] => { - const res: Menores[] = []; - const aux = XLSX.utils.sheet_to_json(worksheet) as unknown as MenoresSheet[]; - aux.forEach((element: MenoresSheet) => { - res.push( - { - edad: element['Edad (meses)'], - peso: element['Peso (Kg)'], - }, - ); - }); - return res; -}; - -const parseWomenLessThanAYear = (worksheet: XLSX.WorkSheet): Menores[] => { +const parseBabies = (worksheet: XLSX.WorkSheet): Menores[] => { const res: Menores[] = []; const aux = XLSX.utils.sheet_to_json(worksheet) as unknown as MenoresSheet[]; aux.forEach((element: MenoresSheet) => { @@ -110,17 +75,17 @@ const parseSheetService = (data: Buffer): SheetParserResponse => { sheetNames.forEach((name) => { const worksheet: XLSX.WorkSheet = workbook.Sheets[name]; switch (name) { - case 'Hombres<1': - hombresMenores = parseMenLessThanAYear(worksheet); + case SheetNames.HOMBRES_MENORES: + hombresMenores = parseBabies(worksheet); break; - case 'Hombres': - hombres = parseMen(worksheet); + case SheetNames.HOMBRES: + hombres = parseAdults(worksheet); break; - case 'Mujeres<1': - mujeresMenores = parseWomenLessThanAYear(worksheet); + case SheetNames.MUJERES_MENORES: + mujeresMenores = parseBabies(worksheet); break; - case 'Mujeres': - mujeres = parseWomen(worksheet); + case SheetNames.MUJERES: + mujeres = parseAdults(worksheet); break; default: diff --git a/src/Services/test.xlsx b/src/Services/test.xlsx index 9fef8e5821051fe4270710bcec7daf0e25d1894a..3edb2bfeb00af26dd42279a2a4ebbdd2beb50724 100644 Binary files a/src/Services/test.xlsx and b/src/Services/test.xlsx differ diff --git a/src/index.ts b/src/index.ts index 9fdd678e0bcf2d912ae8503fedaa1f7dedd5552b..52cbdc32127f805de68a2ef4a320b6f81501284e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,11 +4,12 @@ import 'dotenv/config'; import cors from 'cors'; import swaggerJsDoc, { Options } from 'swagger-jsdoc'; import swaggerUi from 'swagger-ui-express'; +import helmet from 'helmet'; import Routes from './routes'; const app: Application = express(); const PORT = process.env.PORT || 8000; - +app.use(helmet.hidePoweredBy()); // swagger init const swaggerOptions: Options = { swaggerDefinition: {