126 lines
4.6 KiB
JavaScript
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
|