Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.01 KB | None | 0 0
  1. const mongoose = require('mongoose');
  2. const Schema = mongoose.Schema;
  3. const bcrypt = require('bcryptjs');
  4.  
  5. const UserSchema = new Schema({
  6. email: { type: String, required: true, unique: true, lowercase: true },
  7. senha: {type: String, required: true, select: false},
  8. nome: {type: String, required: true, select: true},
  9. sobrenome: {type: String, required: true, select: true},
  10. cpf: {type: String, required: true, select: true, unique: true,},
  11. endereco: [{
  12. logradouro: {type: String, required: true, select: true},
  13. bairro: {type: String, required: true, select: true},
  14. cidade: {type: String, required: true, select: true},
  15. cep: {type: String, required: true, select: true},
  16. estado: {type: String, required: true, select: true},
  17. }],
  18. created: {type: Date, default: Date.now}
  19. });
  20.  
  21. UserSchema.pre('save', function (next) {
  22. let user = this;
  23. if(!user.isModified('senha')) return next();
  24. bcrypt.hash(user.senha, 10, (err,encrypted) => {
  25. user.senha = encrypted;
  26. return next();
  27. });
  28. });
  29.  
  30.  
  31. module.exports = mongoose.model('User', UserSchema);
  32.  
  33. const bcrypt = require('bcryptjs');
  34. const mongoose = require('mongoose');
  35. const Users = require('../models/user');
  36. const jwt = require('jsonwebtoken');
  37.  
  38. const createUserToken = (userId) => {
  39. return jwt.sign({id: userId}, 'chavesecreta', {expiresIn: '7d'});
  40. }
  41.  
  42. module.exports = {
  43.  
  44.  
  45. buscar(req, res) {
  46. Users.find({}, (err, data) => {
  47. if (err) return res.send({ error: 'Erro na consulta de usuarios!' });
  48. return res.send(data);
  49. });
  50. },
  51. criar(req, res) {
  52. const { email, senha, nome, sobrenome, cpf } = req.body;
  53. if (!email || !senha || !nome || !sobrenome || !cpf ) return res.send({ error: "Dados não preenchidos!" });
  54. Users.findOne({ email: email }, (err, data) => {
  55. if (err) return res.send({ error: "Erro ao buscar usuario!" });
  56. if (data) return res.send({ error: "Usuario já registrado!" });
  57.  
  58. Users.create(req.body, (err, data) => {
  59. if (err) return res.send({ error: "Erro ao criar usuario!" + err });
  60. data.senha = undefined;
  61. return res.send({data, token: createUserToken(data.id)});
  62. });
  63. });
  64. },
  65. auth(req, res) {
  66. const { email, senha } = req.body;
  67. if (!email || !senha) return res.send({ error: "Preencha todos os campos!" });
  68. Users.findOne({ email: email }, (err, data) => {
  69. if (err) return res.send({ error: "Erro ao buscar usuario!" });
  70. if (!data) return res.send({ error: "Usuario não registrado!" });
  71. bcrypt.compare(senha, data.senha, (err, same) => {
  72. if (!same) return res.send({ error: "Senha incorreta!" });
  73. data.senha = undefined;
  74. return res.send({data, token: createUserToken(data.id)});
  75. })
  76. }).select('+senha');
  77. },
  78. validacao(req, res) {
  79. return res.send({status: "Valido"});
  80. }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement