db/data.json
por-hacer/por-hacer.php
app.js
/*********** por-hacer.php **********/
const fs = require('fs');
let listadoPorHacer=[];
const cargarDB = () =>{
try {
//
listadoPorHacer=require("../db/data.json");
} catch(e) {
// al inicio cuando el archivo esta vacio nos da una exception, entonces la variable
// la ponemos como una arreglo vacio
listadoPorHacer=[];
}
}
const crear=(descripcion)=>{
cargarDB();
let porHacer = {
descripcion:descripcion,
completado:false
}
listadoPorHacer.push(porHacer);
guardarDB();
return porHacer;
}
const guardarDB=()=>{
let data=JSON.stringify(listadoPorHacer);
fs.writeFile('db/data.json', data, (err) => {
if (err) throw new Error('No se pudo grabar',err);
// console.log('The file has been saved!');
});
}
const actualizar=(descripcion,completado=true)=>{
cargarDB();
let index = listadoPorHacer.findIndex(tarea=>tarea.descripcion===descripcion);
if(index>=0){
listadoPorHacer[index].completado=completado;
guardarDB();
return true;
}
return false;
}
crear, getListado, actualizar
}
/************************** app.js ******************************/
const { crear, getListado, actualizar } = require('./por-hacer/por-hacer.js');
let comando =argv._[0];
switch (comando) {
case 'listar': let listado = getListado(); for(let elemento of listado){ console.log(elemento.descripcion +' estado: '+elemento.completado); } break; case 'crear': crear(argv.descripcion); break;
case 'actualizar':
console.log("actualizar");
break;
default:
console.log("comando no reconocido");
break;
}
vamos a agregarle la tarea de borrar entonces en app.js
case 'borrar':
if(borrar(argv.descripcion,argv)){
console.log('Borrado OK')
}else{
console.log("Fallo en el borrado");
}
break;
y en por-hacer.js
const borrar=(descripcion)=>{
cargarDB();
let index = listadoPorHacer.findIndex(tarea=>tarea.descripcion===descripcion);
if(index>=0){
listadoPorHacer.splice(index,1);//elimina en la posicion index 1 elemento
guardarDB();
return true;
}
return false;
}
//recordar exportarla
module.exports = {
crear, getListado, actualizar, borrar
}
y en app.js
agregarla a la lista de funciones que necesito
const { crear, getListado, actualizar,borrar } = require('./por-hacer/por-hacer.js');
en yargs.js agregar la definicion de la tarea
.command('borrar','borra una tarea',{
descripcion:descripcion
})
para ejecutar
node app.js borrar "nombre de tarea a borrar"
No hay comentarios:
Publicar un comentario