Files
api/dist/controller/Usuario.js
T
2020-09-11 10:24:48 -05:00

126 lines
4.6 KiB
JavaScript

"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