const config = require("../config/pass"); const { Usuario } = require("../models/Usuario"); const bcrypt = require("bcrypt"); const jwt = require("jsonwebtoken"); const usuarios = require("../config/usuarios.json"); module.exports = { Login: async function (req, res) { if (req.body.Senha == undefined) { return res.status(200).send({ auth: false, token: null, data: { erro: "Não esqueceu de nada?" }, }); } console.log(bcrypt.hashSync(req.body.Senha, 8)); var user = usuarios.find( (usuario) => usuario.Login == req.body.Login ); if (!user) return res.status(404).send("Usuario não localizado."); if (user.Ativo == 0) return res.status(401).send("Usuario inativo"); let passwordIsValid = bcrypt.compareSync(req.body.Senha, user.Senha); if (!passwordIsValid) return res.status(401).send("Combinação de usuario e senha inválida!"); let token = jwt.sign({ id: user.Id, dados: user }, config.secret, { expiresIn: 86400, // expires in 24 hours }); res.status(200).send({ auth: true, token: token, user: user }); }, Status: async function (req, res) { res.status(200).send({ ok: true, dados: req.user }); }, Listar: async function (req, res) { try { await Usuario.query() .then(async (usuarios) => { res.status(200).send(usuarios); }) .catch((error) => { console.log(error); res.send(error); }); } catch (error) { console.log(error); } }, Cadastrar: async function (req, res) { try { let { DadosUsuario } = req.body; if (DadosUsuario) { await Usuario.query() .insert({ Nome: DadosUsuario.Nome, Login: DadosUsuario.Login, Senha: bcrypt.hashSync(DadosUsuario.Senha, 8), Ativo: DadosUsuario.Status ? 1 : 0, Nivel: DadosUsuario.Nivel, Setor: 1, }) .then(async (usuariocadastrado) => { res.status(200).send({ status: true, Usuario: usuariocadastrado }); }) .catch((error) => { console.log(error); res.send({ status: false, msg: "Erro ao cadastrar!" }); }); } else { res.status(401).send({ msg: "Informacoes faltando!" }); } } catch (error) { console.log(error); res.status(500).send({ msg: "Erro interno." }); } }, Editar: async function (req, res) { try { let { DadosUsuario } = req.body; if (DadosUsuario) { await Usuario.query() .where("Id", DadosUsuario.Id) .first() .then(async (user) => { if (DadosUsuario.Senha == "") { var usered = { Nome: DadosUsuario.Nome, Login: DadosUsuario.Login, Nivel: parseInt(DadosUsuario.Nivel), Ativo: DadosUsuario.Status ? 1 : 0, Setor: 1, }; } else { var usered = { Nome: DadosUsuario.Nome, Login: DadosUsuario.Login, Senha: bcrypt.hashSync(DadosUsuario.Senha, 8), Nivel: parseInt(DadosUsuario.Nivel), Ativo: DadosUsuario.Status ? 1 : 0, Setor: 1, }; } user .$query() .patchAndFetchById(user.Id, usered) .then(async (usuarioatt, err) => { res.status(200).send({ status: true, Usuario: usuarioatt }); }) .catch((err) => { console.log(err); res.status(401).send({ status: false, erro: err }); }); }) .catch((error) => { console.log(error); res.send({ status: false, msg: "Erro ao atualizar!" }); }); } else { res.status(401).send({ msg: "Informacoes faltando!" }); } } catch (error) { console.log(error); res.status(500).send({ msg: "Erro interno." }); } }, };