UsuarioController.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. const config = require("../config/pass");
  2. const { Usuario } = require("../models/Usuario");
  3. const bcrypt = require("bcrypt");
  4. const jwt = require("jsonwebtoken");
  5. const usuarios = require("../config/usuarios.json");
  6. module.exports = {
  7. Login: async function (req, res) {
  8. if (req.body.Senha == undefined) {
  9. return res.status(200).send({
  10. auth: false,
  11. token: null,
  12. data: { erro: "Não esqueceu de nada?" },
  13. });
  14. }
  15. //console.log(bcrypt.hashSync(req.body.Senha, 8));
  16. var user = usuarios.find(
  17. (usuario) => usuario.Login == req.body.Login
  18. );
  19. if (!user) return res.status(404).send("Usuario não localizado.");
  20. if (user.Ativo == 0) return res.status(401).send("Usuario inativo");
  21. let passwordIsValid = bcrypt.compareSync(req.body.Senha, user.Senha);
  22. if (!passwordIsValid)
  23. return res.status(401).send("Combinação de usuario e senha inválida!");
  24. let token = jwt.sign({ id: user.Id, dados: user }, config.secret, {
  25. expiresIn: 86400, // expires in 24 hours
  26. });
  27. res.status(200).send({ auth: true, token: token, user: user });
  28. },
  29. Status: async function (req, res) {
  30. res.status(200).send({ ok: true, dados: req.user });
  31. },
  32. Listar: async function (req, res) {
  33. try {
  34. await Usuario.query()
  35. .then(async (usuarios) => {
  36. res.status(200).send(usuarios);
  37. })
  38. .catch((error) => {
  39. console.log(error);
  40. res.send(error);
  41. });
  42. } catch (error) {
  43. console.log(error);
  44. }
  45. },
  46. Cadastrar: async function (req, res) {
  47. try {
  48. let { DadosUsuario } = req.body;
  49. if (DadosUsuario) {
  50. await Usuario.query()
  51. .insert({
  52. Nome: DadosUsuario.Nome,
  53. Login: DadosUsuario.Login,
  54. Senha: bcrypt.hashSync(DadosUsuario.Senha, 8),
  55. Ativo: DadosUsuario.Status ? 1 : 0,
  56. Nivel: DadosUsuario.Nivel,
  57. Setor: 1,
  58. })
  59. .then(async (usuariocadastrado) => {
  60. res.status(200).send({ status: true, Usuario: usuariocadastrado });
  61. })
  62. .catch((error) => {
  63. console.log(error);
  64. res.send({ status: false, msg: "Erro ao cadastrar!" });
  65. });
  66. } else {
  67. res.status(401).send({ msg: "Informacoes faltando!" });
  68. }
  69. } catch (error) {
  70. console.log(error);
  71. res.status(500).send({ msg: "Erro interno." });
  72. }
  73. },
  74. Editar: async function (req, res) {
  75. try {
  76. let { DadosUsuario } = req.body;
  77. if (DadosUsuario) {
  78. await Usuario.query()
  79. .where("Id", DadosUsuario.Id)
  80. .first()
  81. .then(async (user) => {
  82. if (DadosUsuario.Senha == "") {
  83. var usered = {
  84. Nome: DadosUsuario.Nome,
  85. Login: DadosUsuario.Login,
  86. Nivel: parseInt(DadosUsuario.Nivel),
  87. Ativo: DadosUsuario.Status ? 1 : 0,
  88. Setor: 1,
  89. };
  90. } else {
  91. var usered = {
  92. Nome: DadosUsuario.Nome,
  93. Login: DadosUsuario.Login,
  94. Senha: bcrypt.hashSync(DadosUsuario.Senha, 8),
  95. Nivel: parseInt(DadosUsuario.Nivel),
  96. Ativo: DadosUsuario.Status ? 1 : 0,
  97. Setor: 1,
  98. };
  99. }
  100. user
  101. .$query()
  102. .patchAndFetchById(user.Id, usered)
  103. .then(async (usuarioatt, err) => {
  104. res.status(200).send({ status: true, Usuario: usuarioatt });
  105. })
  106. .catch((err) => {
  107. console.log(err);
  108. res.status(401).send({ status: false, erro: err });
  109. });
  110. })
  111. .catch((error) => {
  112. console.log(error);
  113. res.send({ status: false, msg: "Erro ao atualizar!" });
  114. });
  115. } else {
  116. res.status(401).send({ msg: "Informacoes faltando!" });
  117. }
  118. } catch (error) {
  119. console.log(error);
  120. res.status(500).send({ msg: "Erro interno." });
  121. }
  122. },
  123. };