From b9fd7d689bf472752a883378638e32f4a26841a3 Mon Sep 17 00:00:00 2001 From: "Lemuel H. Marquez Rosas" Date: Mon, 5 Oct 2020 01:00:56 -0500 Subject: [PATCH] lineas api operador listas --- src/controller/equipo/cargaMasiva.js | 0 src/controller/equipo/update.js | 0 src/controller/operador/create.js | 31 +++++++++++++-------- src/controller/operador/get.js | 30 +++++++++++++++++---- src/controller/operador/login.js | 40 +++++++++++++++++++--------- src/routes/index.js | 1 + src/routes/operador.js | 32 ++++++++++++++++++++++ 7 files changed, 105 insertions(+), 29 deletions(-) create mode 100644 src/controller/equipo/cargaMasiva.js create mode 100644 src/controller/equipo/update.js diff --git a/src/controller/equipo/cargaMasiva.js b/src/controller/equipo/cargaMasiva.js new file mode 100644 index 0000000..e69de29 diff --git a/src/controller/equipo/update.js b/src/controller/equipo/update.js new file mode 100644 index 0000000..e69de29 diff --git a/src/controller/operador/create.js b/src/controller/operador/create.js index 56b98f4..efdf789 100644 --- a/src/controller/operador/create.js +++ b/src/controller/operador/create.js @@ -1,20 +1,29 @@ require('../../config/config') +const validador = require('../validador') const bcrypt = require('bcrypt') const Operador = require('../../db/tables/Operador') -const create = (body) => { - return Operador.create({ - nombre: body.nombre, - password: bcrypt.hashSync(body.password, Number(process.env.SALT_ROUNDS)), - idTipoOperador: 2, - }) +const create = async (body) => { + let nombre = await validador.validarTexto(body.nombre).then((res) => res) + let password = await validador + .validarTexto(body.password) + .then((res) => bcrypt.hashSync(res, Number(process.env.SALT_ROUNDS))) + let busqueda = { where: { nombre } } + + return Operador.findOne(busqueda) .then((res) => { - console.log(res) - return { mensaje: 'Se creo un operador correctamente' } + let data = { + nombre, + password, + idTipoOperador: 2, + } + + if (res) validador.error('Ya existe un operador con este nombre.', 400) + return Operador.create(data) + }) + .then((res) => { + return { code: 201, message: 'Se creo un operador correctamente' } }) - .catch((err) => {}) } module.exports = create - -// create({ nombre: 'Lemuel', password: 'hola' }) diff --git a/src/controller/operador/get.js b/src/controller/operador/get.js index 86f6071..d3f978a 100644 --- a/src/controller/operador/get.js +++ b/src/controller/operador/get.js @@ -1,11 +1,31 @@ const Operador = require('../../db/tables/Operador') +const TipoOperador = require('../../db/tables/TipoOperador') const get = async () => { - return Operador.findAll() - .then((res) => { - return res - }) - .catch((err) => {}) + let busqueda = { + include: [{ model: TipoOperador }], + } + + return Operador.findAll(busqueda).then((res) => { + let data = [] + + for (let i = 0; i < res.length; i++) { + let operador = { + idOperador: res[i].idOperador, + nombre: res[i].nombre, + TipoOperador: { + idTipoOperador: res[i].TipoOperador.idTipoOperador, + nombre: res[i].TipoOperador.nombre, + }, + } + + data.push(operador) + } + return { + code: 200, + data, + } + }) } module.exports = get diff --git a/src/controller/operador/login.js b/src/controller/operador/login.js index a3d56a0..a5e8d50 100644 --- a/src/controller/operador/login.js +++ b/src/controller/operador/login.js @@ -1,20 +1,34 @@ const bcrypt = require('bcrypt') +const validador = require('../validador') const Operador = require('../../db/tables/Operador') +const TipoOperador = require('../../db/tables/TipoOperador') -const login = (body) => { - return Operador.findOne({ where: { nombre: body.nombre } }) - .then((res) => { - if (res) { - if (!bcrypt.compareSync(body.password, res.password)) { - throw new Error('El usuario o contraseña son incorrectos.') - } - return { res } +const login = async (body) => { + let nombre = await validador.validarTexto(body.nombre).then((res) => res) + let password = await validador.validarTexto(body.password).then((res) => res) + let busqueda = { + where: { nombre }, + include: [{ model: TipoOperador }], + } + + return Operador.findOne(busqueda).then((res) => { + if (res) { + if (!bcrypt.compareSync(password, res.password)) + validador.error('El Operador o contraseña son incorrectos.', 400) + return { + data: { + idOperador: res.idOperador, + nombre: res.nombre, + TipoOperador: { + idTipoOperador: res.TipoOperador.idTipoOperador, + nombre: res.TipoOperador.nombre, + }, + }, + code: 200, } - throw new Error('El usuario o contraseña son incorrectos.') - }) - .catch((err) => {}) + } + validador.error('El usuario no existe.', 400) + }) } module.exports = login - -// login({ nombre: 'lemuel', password: 'hola' }) diff --git a/src/routes/index.js b/src/routes/index.js index 32675fe..e6f04bb 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -7,5 +7,6 @@ app.use(require('./plantel')) app.use(require('./carrera')) app.use(require('./horario')) app.use(require('./equipo')) +app.use(require('./operador')) module.exports = app diff --git a/src/routes/operador.js b/src/routes/operador.js index e69de29..ef1ca80 100644 --- a/src/routes/operador.js +++ b/src/routes/operador.js @@ -0,0 +1,32 @@ +const express = require('express') +const app = express() +const get = require('../controller/operador/get') +const create = require('../controller/operador/create') +const login = require('../controller/operador/login') +const route = '/operador' + +app.get(`${route}`, (req, res) => { + return get() + .then((data) => { + res.status(data.code).json(data.data) + }) + .catch((err) => res.status(err.code).json({ err: err.message })) +}) + +app.post(`${route}/create`, (req, res) => { + return create(req.body) + .then((data) => { + res.status(data.code).json({ message: data.message }) + }) + .catch((err) => res.status(err.code).json({ err: err.message })) +}) + +app.post(`${route}/login`, (req, res) => { + return login(req.body) + .then((data) => { + res.status(data.code).json({ operador: data.data }) + }) + .catch((err) => res.status(err.code).json({ err: err.message })) +}) + +module.exports = app