UNPKG

menu-usuario-dutan

Version:

Prueba de javascript

76 lines (70 loc) 2.56 kB
const {map, mergeMap} = require('rxjs/operators'); const {leerArchivo, escribirArchivo} = require('./operacionesArchivos'); const {of, from} = require('rxjs'); const codificacionArchivo = 'utf8'; const pathArchivo = 'datos.txt'; const leerUsuarios = async () => { try { return await leerArchivo(pathArchivo, codificacionArchivo); } catch (e) { console.log(e); } }; module.exports = { listarMateriasFavoritas: async () => { const materias = []; const usuariosLeidos = await leerUsuarios(); usuariosLeidos.map( (usuarios) => { usuarios.materiasPreferidas.map( (materia) => { materias.push(materia.nombre); } ) } ); const materiasSinRepetidos = materias.filter((valor, indiceActual, arreglo) => arreglo.indexOf(valor) === indiceActual); console.log(materiasSinRepetidos); const materiasAEscribir = materiasSinRepetidos.join(); await escribirArchivo('materias.txt', materiasAEscribir); return materiasAEscribir; }, listarUsuariosActivosInactivos: async (ActivoOInactivo) => { const usuariosLeidos = await leerUsuarios(); let usuariosRetornar = []; if (ActivoOInactivo === 'activos') { usuariosRetornar = usuariosLeidos.filter( (usuarios) => { return usuarios.isActive } ); } else if (ActivoOInactivo === 'inactivos') { usuariosRetornar = usuariosLeidos.filter( (usuarios) => { return usuarios.isActive === false } ); } await escribirArchivo('estudiantes-activos.txt', JSON.stringify(usuariosRetornar)); return usuariosRetornar; }, registrarUsuario: async (usuarioARegistrar) => { const usuariosLeidos = await leerUsuarios(); console.log('Usuario', usuarioARegistrar); usuariosLeidos.push(usuarioARegistrar); await escribirArchivo('datos.json', JSON.stringify(usuariosLeidos)); }, buscarUsuario: async (cedula) => { try { const usuariosLeidos = await leerUsuarios(); const usuariosEncontrados = usuariosLeidos.filter( (usuario) => { return usuario.cedula === cedula; } ); return usuariosEncontrados; } catch (e) { return e; } }, }