Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module.exports = app => {
- const User = app.datasource.models.User
- const Help = require('../../helpers/upload')
- const Errors = require('../../errors/user/pt-br')
- const Regex = require('../../helpers/regex')
- return {
- create: (req, res, next) => {
- req.assert('name', Errors.name).notEmpty()
- req.assert('email', Errors.email).isEmail()
- req.assert('phone', Errors.phone).notEmpty()
- req.assert('password', Errors.password1).len(6, 2000)
- const errors = req.validationErrors()
- errors ? res.status(400).json(errors) : next()
- },
- listOne: (req, res, next) => isNaN(req.params.id) ? res.json([Errors.idInvalid]) : next(),
- update: (req, res, next) => {
- if (isNaN(req.params.id)) {
- if (req.file) {
- Help.uploadRemove(req.file.filename)
- }
- res.json([Errors.idInvalid])
- } else {
- const query = { where: req.params }
- User.findOne(query).then(user => {
- if (user) {
- if (req.file) {
- if (user.avatar) Help.uploadRemove(user.avatar)
- }
- next()
- } else {
- res.status(400).json([Errors.userExist])
- Help.uploadRemove(req.body.file)
- }
- })
- }
- },
- delete: (req, res, next) => isNaN(req.params.id) ? res.json([Errors.idInvalid]) : next(),
- unique: (req, res, next) => {
- const phone = Regex.phoneClean(req.body.phone)
- const ddi = Regex.ddi(phone)
- const ddd = Regex.ddd(phone)
- const number = Regex.phone(phone)
- const query = {
- where: {
- $or: [
- {$and: [{ddd: ddd}, {ddi: ddi}, {ddd: ddd}, {number: number}]},
- {email: {$eq: req.body.email}}
- ]
- }
- }
- User.findOne(query)
- .then(user => user ? res.status(400).json([Errors.userExist]) : next())
- .catch(err => res.status(500).json(err))
- },
- forgot: (req, res, next) => {
- const query = {
- where: { email: { $eq: req.body.email } }
- }
- User.findOne(query)
- .then(user => user ? next() : res.status(400).json({ error: 'Email not exist!' }))
- .catch(err => res.status(500).json(err))
- },
- forgotValidate: (req, res, next) => {
- const query = {
- where: { forgot: { $eq: req.body.forgot } }
- }
- User.findOne(query)
- .then(user => user ? res.status(200).json({ token: true }) : res.status(400).json({ token: 'Invalid!' }))
- .catch(err => res.status(500).json(err))
- },
- password: (req, res, next) => {
- req.assert('forgot', 'valid forgot required').notEmpty()
- req.assert('password', Errors.password1).len(6, 2000)
- const errors = req.validationErrors()
- if (errors) {
- res.status(400).json(errors)
- } else {
- const query = { where: { forgot: { $eq: req.body.forgot } } }
- if (req.body.password1 === req.body.password2) {
- User.findOne(query)
- .then(user => user ? next() : res.status(400).json([Errors.tokenInvalid])
- .catch(err => res.status(500).json(err))
- } else {
- res.status(400).json(Errors.passwordNotEquals)
- }
- }
- },
- resend: (req, res, next) => {
- if (isNaN(req.params.id)) {
- res.status(400).json([Errors.idInvalid])
- } else {
- User.findById(req.params.id)
- .then(user => {
- if (user) {
- req.user = user.dataValues
- next()
- } else {
- res.status(400).json([Errors.userNotExist])
- }
- })
- .catch(err => res.status(500).json(err))
- }
- },
- activeCode: (req, res, next) => {
- const active = parseInt(req.params.active)
- if (isNaN(active)) {
- res.status(400).json([Errors.activeInvalid])
- } else {
- const query = { where: { active: { $eq: active } } }
- User.findOne(query)
- .then(user => user ? next() : res.status(400).json([Errors.activeInvalid]))
- .catch(err => res.status(500).json(err))
- }
- },
- email: (req, res, next) => {
- const query = {
- where: {email: {$eq: req.params.email}}
- }
- User.findOne(query)
- .then(user => !user
- ? res.status(200).json({validate: true})
- : res.status(400).json([{title: 'Error', message: 'Email já existente!'}]))
- .catch(err => res.status(500).json(err))
- },
- phone: (req, res, next) => {
- const phone = Regex.phoneClean(req.params.phone)
- const ddi = Regex.ddi(phone)
- const ddd = Regex.ddd(phone)
- const number = Regex.phone(phone)
- const query = {
- where: {
- $and: [{ddi: ddi}, {ddd: ddd}, {number: number}]
- }
- }
- console.log(query.where)
- User.findOne(query)
- .then(user => !user
- ? res.status(200).json({validate: true})
- : res.status(400).json({title: 'Error', message: 'Phone já existente!'}))
- .catch(err => res.status(500).json(err))
- },
- cpf: (req, res, next) => {
- const query = {
- where: {cpf: {$eq: req.params.cpf}}
- }
- User.findOne(query)
- .then(user => !user
- ? res.status(200).json({validate: true})
- : res.status(400).json([{title: 'Error', message: 'Cpf já existente!'}]))
- .catch(err => res.status(500).json(err))
- },
- }
- }
Add Comment
Please, Sign In to add comment