"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Usuario_1 = require("../entity/Usuario"); const class_validator_1 = require("class-validator"); const typeorm_1 = require("typeorm"); const Auth_1 = require("./Auth"); class UsuarioController { static async create(req, res) { console.log(req.file); const { id, nombre, apellidoPaterno, apellidoMaterno, correoAlternativo, numeroTelefonico, institucion, secreto, interno } = JSON.parse(req.body.usuario); const identificacion = req.file; if (!interno && !identificacion) { res.status(400).send({ status: false, data: 'Un usuario externo tiene que mandar fotoo de su identificacion' }); return false; } const usuario = new Usuario_1.Usuario(); usuario.id = id; usuario.nombre = nombre; usuario.apellidoPaterno = apellidoPaterno; usuario.apellidoMaterno = apellidoMaterno; usuario.correoAlternativo = correoAlternativo; usuario.numeroTelefonico = numeroTelefonico; usuario.identificacion = interno ? 'null' : JSON.stringify(identificacion); usuario.institucion = institucion; usuario.secreto = secreto; usuario.interno = interno; usuario.hashPassword(); const errors = await class_validator_1.validate(usuario); if (errors.length > 0) { res.status(400).send(errors); } const repository = typeorm_1.getRepository(Usuario_1.Usuario); try { await repository.save(usuario); } catch (e) { res.status(409).send(e.message); return; } res.status(201).send('User create'); } static async getAll(req, res) { const respository = typeorm_1.getRepository(Usuario_1.Usuario); const result = await respository.find({ select: ['id', 'nombre', 'apellidoMaterno', 'apellidoPaterno'] }); res.status(200).json(result); } static async getOne(req, res) { const respository = typeorm_1.getRepository(Usuario_1.Usuario); const id = +req.params.id; try { const result = await respository.findOneOrFail(id, { select: ['id', 'nombre', 'apellidoMaterno', 'apellidoPaterno'] }); res.status(200).json(result); } catch (e) { res.status(404).send('Usuario no encontrado'); } } static async login(req, res) { const repository = typeorm_1.getRepository(Usuario_1.Usuario); const { id, secreto } = req.body; try { const usuario = await repository.findOne({ where: { id } }); if (!usuario) { throw new Error('*Usuario o contraseƱa invalidos'); } if (!usuario.checkIfUnencryptedPasswordIsValid(secreto)) { throw new Error('Usuario o *contraseƱa invalidos'); } const token = await Auth_1.AuthController.signUsuario(usuario.interno ? 'usuarioInterno' : 'usuarioExterno', usuario.id); console.log(token); res.status(200).json({ nombre: usuario.nombre, apellidoPaterno: usuario.apellidoPaterno, apellidoMaterno: usuario.apellidoMaterno, interno: usuario.interno, token }); } catch (err) { res.status(400).send(err.message); } } static async verificar(req, res) { const usuarios = ['415112132', '41511216']; const externos = ['315112132', '31511216']; const usuarioId = req.params.id; const usuarioInterno = { nombre: 'Arturo', apellidoPaterno: 'Guerrero', apellidoMaterno: 'Lopez', institucion: 'Fes acatlan', carrera: 'Matematicas aplicadas', interno: true }; const usuarioExterno = { nombre: 'Paulina', apellidoPaterno: 'Guerrero', apellidoMaterno: 'Lopez', institucion: 'FES Iztacala', carrera: 'Biologia', interno: false }; if (usuarios.includes(usuarioId)) { res.status(200).json(usuarioInterno); return; } if (externos.includes(usuarioId)) { res.status(200).json(usuarioExterno); return; } res.status(400).json({ err: 'no se encontro un usuario' }); } } exports.UsuarioController = UsuarioController; //# sourceMappingURL=Usuario.js.map