From 742e450d0f9274fcdbf89f77d12e18ab25aa9eb9 Mon Sep 17 00:00:00 2001 From: Andrey Bejarano Date: Thu, 2 Jun 2022 23:32:19 -0300 Subject: [PATCH] clase 6 finalizada --- clase6/app.js | 19 +++++++++++++++++++ clase6/funcionesArchivos.js | 8 ++++++++ 2 files changed, 27 insertions(+) diff --git a/clase6/app.js b/clase6/app.js index ff61e42..4b9e9b6 100644 --- a/clase6/app.js +++ b/clase6/app.js @@ -1,5 +1,7 @@ const funcTareas = require('./funcionesArchivos'); +//Si desea investigar un poco más sobre este módulo nativo de NodeJs +//https://nodejs-es.github.io/api/process.html#process_es_process const accion = process.argv[2]; switch (accion) { @@ -7,10 +9,17 @@ switch (accion) { const tareas = funcTareas.leerArchivo(); console.log('Listado de tareas'); console.log('-----------------'); + //Micro desafío 1 + //Modificar la funcionalidad de listar tareas. Deberemos utilizar el método forEach. tareas.forEach((tarea, index) => { console.log(`${index + 1}. ${tarea.titulo} - ${tarea.estado}`); }); break; + // Micro desafío 2 - c + // ------------------- + // Escribir el caso de crear tarea + // Tener en cuenta que va a llegar el nombre de la tarea como segundo argumento + // Tener en cuenta que la tarea se crea en esto "pendiente" case 'crear': console.log(); console.log('Nueva tarea creada'); @@ -23,6 +32,16 @@ switch (accion) { funcTareas.guardarTarea(tarea); console.log(`${tarea.titulo} -> ${tarea.estado}`); break; + // Micro desafío 3 + case 'filtrar': + const estado = process.argv[3]; + console.log('Tareas ' + estado); + console.log('------------------'); + const filtradas = funcTareas.filtrarPorEstado(estado); + filtradas.forEach((tarea, index) => { + console.log(`${index + 1}. ${tarea.titulo} - ${tarea.estado}`); + }); + break; case undefined: console.log('Atención - Tienes que pasar una acción.'); console.log('---------------------------------------'); diff --git a/clase6/funcionesArchivos.js b/clase6/funcionesArchivos.js index a46f719..b882270 100644 --- a/clase6/funcionesArchivos.js +++ b/clase6/funcionesArchivos.js @@ -7,13 +7,21 @@ module.exports = { const fileTareas = fs.readFileSync(this.file, 'utf-8'); return JSON.parse(fileTareas); }, + // Micro desafío 2-a + //Dentro de nuestro archivo funcionesDeTareas.js(en nuestro caso funcionesArchivos.js), vamos a crear una función llamada escribirJSON. escribirJSON: function(tareas) { const tarea = JSON.stringify(tareas, null, ' '); fs.writeFileSync(this.file, tarea); }, + // Micro desafío 2-b - Escribir la tarea en el archivo JSON guardarTarea: function(nuevaTarea) { let tareas = this.leerArchivo(); tareas.push(nuevaTarea); this.escribirJSON(tareas); + }, + // Micro desafío 3, aplicar filter para traer solo las tareas pendientes + filtrarPorEstado: function (estado) { + const tareas = this.leerArchivo(); + return tareas.filter(tarea => tarea.estado === estado); } }; \ No newline at end of file