menu-usuario-dutan
Version:
Prueba de javascript
76 lines (70 loc) • 2.56 kB
JavaScript
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;
}
},
}