Guest User

Untitled

a guest
May 30th, 2018
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.69 KB | None | 0 0
  1. const env = process.env.NODE_ENV || 'development';
  2. const config = require('../config/config.json')[env];
  3.  
  4. const validationService = require('./validationService');
  5. const models = require('../models');
  6.  
  7. const bcrypt = require('bcrypt');
  8.  
  9. module.exports = {
  10.  
  11. signup: function(params) {
  12. return new Promise((resolve, reject) => {
  13. if (!params.email || !params.password) {
  14. reject('Missing params');
  15. } else {
  16. validationService.doesSuchUserExist(params.email)
  17. .then(result => {
  18. if (result) {
  19. reject('This email has been used. Try Login');
  20. } else {
  21. bcrypt.hash(params.password, 2).then((hash) => {
  22. params.password = hash;
  23. // insert user info to db
  24. models.user.create(params).then(user => {
  25. resolve(user.dataValues);
  26. }).catch((err) => {
  27. console.error('Error occured while creating user:', err);
  28. reject('Server side error');
  29. });
  30. }).catch((err) => {
  31. console.error('Error encrypting password', err);
  32. reject('Server side error');
  33. });
  34. }
  35. }).catch(err => {
  36. console.error('User validation error', err);
  37. reject('Server side error');
  38. });
  39. }
  40. });
  41. },
  42.  
  43. loginUser: function(params) {
  44. return new Promise((resolve, reject) => {
  45. if (!params.email || !params.password) {
  46. reject('Missing params');
  47. } else {
  48. validationService.doesSuchUserExist(params.email)
  49. .then(result => {
  50. if (result) {
  51. models.user.findOne({
  52. where: {
  53. email: params.email
  54. }
  55. }).then(user => {
  56. if (user) {
  57. bcrypt.compare(params.password, user.dataValues.password)
  58. .then(function(res) {
  59. if (res == true) {
  60. resolve(user.dataValues);
  61. } else {
  62. reject('Password mismatch');
  63. }
  64. }).catch((err) => {
  65. console.error('Error decrypting password', err);
  66. reject('Server side error');
  67. });
  68. }
  69. }).catch(err => {
  70. reject('Server side Error');
  71. })
  72. } else {
  73. reject('User does not exist');
  74. }
  75. }).catch(err => {
  76. console.error('User validation error', err);
  77. reject('Server side error');
  78. });
  79. }
  80. });
  81. },
  82.  
  83. getUser: function(params) {
  84. return new Promise((resolve, reject) => {
  85. if (!params.email) {
  86. reject('Invalid Request');
  87. } else {
  88. validationService.doesSuchUserExist(params.email)
  89. .then(result => {
  90. if (result) {
  91. models.user.findOne({
  92. where: {
  93. email: params.email
  94. }
  95. }).then(user => {
  96. if (user) {
  97. resolve(user.dataValues);
  98. }
  99. }).catch(err => {
  100. reject('Server side Error');
  101. })
  102. } else {
  103. reject('User does not exist');
  104. }
  105. }).catch(err => {
  106. console.error('User validation error', err);
  107. reject('Server side error');
  108. });
  109. }
  110. });
  111. },
  112.  
  113. updateUser: function(params) {
  114. return new Promise((resolve, reject) => {
  115. if (!params.email) {
  116. reject('Missing Params');
  117. } else {
  118. models.user.findOne({
  119. where: {
  120. email: params.email
  121. }
  122. }).then(user => {
  123. if (user) {
  124. user.updateAttributes(params)
  125. .then(user => {
  126. resolve(user.dataValues);
  127. }).catch(err => {
  128. console.error('Error occured at saveUser', err);
  129. reject('Server side error');
  130. });
  131. } else {
  132. reject('No such User exist');
  133. }
  134. }).catch(err => {
  135. console.error('Error occured at saveUser', err);
  136. reject('Server side error');
  137. });
  138. }
  139. });
  140. }
  141. };
Add Comment
Please, Sign In to add comment