Advertisement
Guest User

Untitled

a guest
Oct 28th, 2016
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.01 KB | None | 0 0
  1. (() => {
  2. 'use strict';
  3.  
  4. // Módulos'
  5. let md5 = require('md5');
  6. let Promise = require('bluebird');
  7.  
  8. // Model
  9. let Student = require('../models/student').Student;
  10. let User = require('../models/user').User;
  11.  
  12. exports.create = function (req, res) {
  13. var student = new Student();
  14. var user = new User();
  15.  
  16. user.username = req.body.document;
  17. user.password = md5(req.body.password + global.SALT_KEY);
  18. user.role = 'free';
  19. user.active = false;
  20.  
  21. saveUser(user)
  22. .then((user) => {
  23. // Se salvou, persiste o aluno
  24. student.firstName = req.body.firstName;
  25. student.lastName = req.body.lastName;
  26. student.document = req.body.document;
  27. student.email = req.body.email;
  28. student.user = user;
  29. student.createDate = Date.now();
  30.  
  31. return saveStudent(student);
  32. })
  33. .done((result) => {
  34. res.status(201).json({
  35. success: true,
  36. message: 'Bem vindo!',
  37. data: {
  38. firstName: result.firstName,
  39. lastName: result.lastName,
  40. document: result.document,
  41. email: result.email,
  42. }
  43. });
  44. });
  45. };
  46.  
  47. exports.activate = function (req, res) {
  48. var id = req.body.id;
  49.  
  50. getUserById(id)
  51. .then((user) => {
  52. user.active = true;
  53. return updateUser(user);
  54. })
  55. .done((result) => {
  56. res.status(201).json(result);
  57. });
  58. }
  59.  
  60. function saveUser(user) {
  61. return new Promise((resolve, reject) => {
  62. user.save(function (error) {
  63. if (error) {
  64. reject({
  65. success: false,
  66. message: 'Não foi possível concluir seu cadastro, verifique os campos informados e tente novamente.',
  67. data: global.handleError(error)
  68. });
  69. }
  70.  
  71. resolve(user);
  72. });
  73. });
  74. }
  75.  
  76. function saveStudent(student) {
  77. return new Promise((resolve, reject) => {
  78. student.save(function (error) {
  79. if (error) {
  80. reject({
  81. success: false,
  82. message: 'Não foi possível concluir seu cadastro, verifique os campos informados e tente novamente.',
  83. data: global.handleError(error)
  84. });
  85. }
  86.  
  87. resolve(student);
  88. });
  89. });
  90. }
  91.  
  92. function getUserById(id) {
  93. return new Promise((resolve, reject) => {
  94. User
  95. .findById(id)
  96. .exec((error, user) => {
  97. if (error) {
  98. reject({
  99. success: false,
  100. message: 'Ocorreu uma falha ao consultar o registro'
  101. });
  102. }
  103.  
  104. if (!user) {
  105. reject({
  106. success: false,
  107. message: 'Usuário não encontrado'
  108. });
  109. }
  110.  
  111. resolve(user);
  112. });
  113. });
  114. }
  115.  
  116. function updateUser(user) {
  117. return new Promise((resolve, reject) => {
  118. user.save((error) => {
  119. if (error) {
  120. reject({
  121. success: false,
  122. message: 'Não foi possível ativar seu cadastro tente novamente.',
  123. data: global.handleError(error)
  124. });
  125. }
  126.  
  127. resolve({
  128. success: true,
  129. message: 'Cadastro ativado com sucesso.',
  130. data: null
  131. });
  132. });
  133. });
  134. }
  135. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement