Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const bcrypt = require('bcryptjs');
- const jwt = require('jsonwebtoken');
- const authSecretHash = require('./auth.json');
- function Usuario(User){
- this._User = User;
- }
- Usuario.prototype.createUser = async function(res, dadosForm){
- try{
- let user = await new this._User(dadosForm);
- if(!user) return res.status(401).send({error: 'error'})
- user.save((err, doc) => {
- if(err) {
- let errorCode = err.code || " ";
- return res.status(400).send({error: `${err}`, code: errorCode});
- }
- doc.password = undefined; //esconder o password do send(doc)
- res.send(doc);
- })
- }catch(err){
- res.status(500).send({error: `${err}`})
- }
- }
- Usuario.prototype.createUserInfos = async function(res, userId, dadosForm){
- try{
- let userInfos = await this._User.findByIdAndUpdate({_id: userId}, {$set: { userInfos: dadosForm}});
- if(!userInfos) return res.status(401).send({error: 'error'})
- const saveUserInfos = await userInfos.save();
- if(!saveUserInfos) return res.status(400).send({error: 'Erro ao salvar informações. Verefique os campos'})
- res.json(userInfos)
- }catch(err){
- res.status(500).send({error: `${err}`})
- }
- }
- Usuario.prototype.getUserInfos = async function(res, userId){
- try{
- let getUserInfos = await this._User.findOne({_id: userId});
- if(!getUserInfos) return res.status(401).send({error: 'Usuário não encontrado'})
- const saveUserInfos = await getUserInfos.save();
- if(!saveUserInfos) return res.status(400).send({error: 'Erro ao consultar informações. Tente novamente'})
- res.json(getUserInfos.userInfos)
- }catch(err){
- res.status(500).send({error: `${err}`})
- }
- }
- Usuario.prototype.authUser = async function(res, dadosForm){
- try{
- let user = await this._User.findOne({'email': dadosForm.email}).select('+password');
- if(!user) return res.status(404).send({error: 'User not found'});
- if(!await bcrypt.compare(dadosForm.password, user.password)){
- return res.status(400).send({error: 'Invalid password'});
- }
- const token = jwt.sign({id: user.id}, authSecretHash.secrete, {
- expiresIn: 2592000
- })
- user.password =undefined;
- res.send({user, token});
- }catch(err){
- res.status(500).send({error: `${err}`})
- }
- }
- module.exports = () =>{
- return Usuario;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement