Guest User

Untitled

a guest
Oct 15th, 2017
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.31 KB | None | 0 0
  1. module.exports = app => {
  2. const User = app.datasource.models.User
  3. const Help = require('../../helpers/upload')
  4. const Errors = require('../../errors/user/pt-br')
  5. const Regex = require('../../helpers/regex')
  6. return {
  7. create: (req, res, next) => {
  8. req.assert('name', Errors.name).notEmpty()
  9. req.assert('email', Errors.email).isEmail()
  10. req.assert('phone', Errors.phone).notEmpty()
  11. req.assert('password', Errors.password1).len(6, 2000)
  12. const errors = req.validationErrors()
  13. errors ? res.status(400).json(errors) : next()
  14. },
  15. listOne: (req, res, next) => isNaN(req.params.id) ? res.json([Errors.idInvalid]) : next(),
  16. update: (req, res, next) => {
  17. if (isNaN(req.params.id)) {
  18. if (req.file) {
  19. Help.uploadRemove(req.file.filename)
  20. }
  21. res.json([Errors.idInvalid])
  22. } else {
  23. const query = { where: req.params }
  24. User.findOne(query).then(user => {
  25. if (user) {
  26. if (req.file) {
  27. if (user.avatar) Help.uploadRemove(user.avatar)
  28. }
  29. next()
  30. } else {
  31. res.status(400).json([Errors.userExist])
  32. Help.uploadRemove(req.body.file)
  33. }
  34. })
  35. }
  36. },
  37. delete: (req, res, next) => isNaN(req.params.id) ? res.json([Errors.idInvalid]) : next(),
  38.  
  39. unique: (req, res, next) => {
  40. const phone = Regex.phoneClean(req.body.phone)
  41. const ddi = Regex.ddi(phone)
  42. const ddd = Regex.ddd(phone)
  43. const number = Regex.phone(phone)
  44. const query = {
  45. where: {
  46. $or: [
  47. {$and: [{ddd: ddd}, {ddi: ddi}, {ddd: ddd}, {number: number}]},
  48. {email: {$eq: req.body.email}}
  49. ]
  50. }
  51. }
  52. User.findOne(query)
  53. .then(user => user ? res.status(400).json([Errors.userExist]) : next())
  54. .catch(err => res.status(500).json(err))
  55. },
  56. forgot: (req, res, next) => {
  57. const query = {
  58. where: { email: { $eq: req.body.email } }
  59. }
  60. User.findOne(query)
  61. .then(user => user ? next() : res.status(400).json({ error: 'Email not exist!' }))
  62. .catch(err => res.status(500).json(err))
  63. },
  64. forgotValidate: (req, res, next) => {
  65. const query = {
  66. where: { forgot: { $eq: req.body.forgot } }
  67. }
  68. User.findOne(query)
  69. .then(user => user ? res.status(200).json({ token: true }) : res.status(400).json({ token: 'Invalid!' }))
  70. .catch(err => res.status(500).json(err))
  71. },
  72. password: (req, res, next) => {
  73. req.assert('forgot', 'valid forgot required').notEmpty()
  74. req.assert('password', Errors.password1).len(6, 2000)
  75. const errors = req.validationErrors()
  76. if (errors) {
  77. res.status(400).json(errors)
  78. } else {
  79. const query = { where: { forgot: { $eq: req.body.forgot } } }
  80. if (req.body.password1 === req.body.password2) {
  81. User.findOne(query)
  82. .then(user => user ? next() : res.status(400).json([Errors.tokenInvalid])
  83. .catch(err => res.status(500).json(err))
  84. } else {
  85. res.status(400).json(Errors.passwordNotEquals)
  86. }
  87. }
  88. },
  89. resend: (req, res, next) => {
  90. if (isNaN(req.params.id)) {
  91. res.status(400).json([Errors.idInvalid])
  92. } else {
  93. User.findById(req.params.id)
  94. .then(user => {
  95. if (user) {
  96. req.user = user.dataValues
  97. next()
  98. } else {
  99. res.status(400).json([Errors.userNotExist])
  100. }
  101. })
  102. .catch(err => res.status(500).json(err))
  103. }
  104. },
  105. activeCode: (req, res, next) => {
  106. const active = parseInt(req.params.active)
  107. if (isNaN(active)) {
  108. res.status(400).json([Errors.activeInvalid])
  109. } else {
  110. const query = { where: { active: { $eq: active } } }
  111. User.findOne(query)
  112. .then(user => user ? next() : res.status(400).json([Errors.activeInvalid]))
  113. .catch(err => res.status(500).json(err))
  114. }
  115. },
  116. email: (req, res, next) => {
  117. const query = {
  118. where: {email: {$eq: req.params.email}}
  119. }
  120. User.findOne(query)
  121. .then(user => !user
  122. ? res.status(200).json({validate: true})
  123. : res.status(400).json([{title: 'Error', message: 'Email já existente!'}]))
  124. .catch(err => res.status(500).json(err))
  125. },
  126. phone: (req, res, next) => {
  127. const phone = Regex.phoneClean(req.params.phone)
  128. const ddi = Regex.ddi(phone)
  129. const ddd = Regex.ddd(phone)
  130. const number = Regex.phone(phone)
  131. const query = {
  132. where: {
  133. $and: [{ddi: ddi}, {ddd: ddd}, {number: number}]
  134. }
  135. }
  136. console.log(query.where)
  137. User.findOne(query)
  138. .then(user => !user
  139. ? res.status(200).json({validate: true})
  140. : res.status(400).json({title: 'Error', message: 'Phone já existente!'}))
  141. .catch(err => res.status(500).json(err))
  142. },
  143. cpf: (req, res, next) => {
  144. const query = {
  145. where: {cpf: {$eq: req.params.cpf}}
  146. }
  147. User.findOne(query)
  148. .then(user => !user
  149. ? res.status(200).json({validate: true})
  150. : res.status(400).json([{title: 'Error', message: 'Cpf já existente!'}]))
  151. .catch(err => res.status(500).json(err))
  152. },
  153. }
  154. }
Add Comment
Please, Sign In to add comment