UNPKG

menu-usuario-pantoja

Version:

Prueba Javascript

73 lines (54 loc) 2.17 kB
//Hacer un programa que pida usar un nombre y que desea, /* ver lista de usuarios o registrar usuario Para listar los usuarios se usa un json con nombre y apellido del usuario Despues de registrar o listar vuelve al menu principal Esto se hace con callbacks y luego con promesas Siempre se debe ignorar el nodemodules */ const menu= require('./menu'); const datosPersonas = require('./datosPersonas'); const archivo = require('./gestionDeArchivos'); const prompts = require('prompts'); async function elegirOpcion(){ const opcion = await prompts(menu.opcionesPrincipales); const nombresPersonas = await archivo.leer('personas.json', 'UTF-8'); ejecutarOperacion(operacionesDelMenu[opcion.value[0]],JSON.parse(nombresPersonas.informacion)); } async function tomarNombre(){ return await prompts(datosPersonas); }; //Callbacks const operacionesDelMenu = { listar : (nombresPersonas) => { const hayDatosDePersonas = nombresPersonas.length > 0; if(hayDatosDePersonas){ nombresPersonas.forEach((persona,indice) =>{ console.log(`${indice + 1}. ${persona.nombre} ${persona.apellido}`); });}else{ console.log('No hay Datos'); } elegirOpcion(); }, ingresar : async (nombresPersonas) =>{ const nombreIngresado = await tomarNombre(); const hayDatos = nombreIngresado.nombre && nombreIngresado.apellido; if(hayDatos) { //console.log(nombresPersonas.informacion); const nuevaInfo = await nombresPersonas.informacion + " " + nombreIngresado.nombre + " " + nombreIngresado.apellido + "*"; //console.log('nuevainfo',nuevaInfo); nombresPersonas.push({nombre: nombreIngresado.nombre, apellido: nombreIngresado.apellido}); await archivo.escribir('personas.json', JSON.stringify(nombresPersonas,null, 2) ); // } elegirOpcion(); }, salir: async () => { console.log('Adios!'); await process.exit(0);} }; function ejecutarOperacion(operacion,nombresPersonas){ return operacion(nombresPersonas); } elegirOpcion(); //Promesas