Skip to content

Commit

Permalink
clase 6 finalizada
Browse files Browse the repository at this point in the history
  • Loading branch information
andreybejarano committed Jun 3, 2022
1 parent 10d0143 commit 742e450
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 0 deletions.
19 changes: 19 additions & 0 deletions clase6/app.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,25 @@
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) {
case 'listar':
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');
Expand All @@ -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('---------------------------------------');
Expand Down
8 changes: 8 additions & 0 deletions clase6/funcionesArchivos.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
};

0 comments on commit 742e450

Please sign in to comment.