Advertisement
Guest User

repo.js

a guest
Nov 13th, 2018
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.37 KB | None | 0 0
  1. var express = require('express'),
  2. SHA256 = require('crypto-js/sha256'),
  3. moment = require('moment');
  4.  
  5. var accountRepo = require('../repos/accountRepo'),
  6. orderRepo = require('../repos/orderRepo'),
  7. orderdetailsRepo = require('../repos/orderdetailsRepo');
  8.  
  9. var restrict = require('../middle-wares/restrict');
  10.  
  11. var router = express.Router();
  12.  
  13. router.get('/register', (req, res) => {
  14. res.render('account/register');
  15. });
  16.  
  17. router.post('/register', (req, res) => {
  18.  
  19. var dob = moment(req.body.dob, 'D/M/YYYY')
  20. .format('YYYY-MM-DDTHH:mm');
  21.  
  22. var user = {
  23. username: req.body.username,
  24. password: SHA256(req.body.rawPWD).toString(),
  25. name: req.body.name,
  26. email: req.body.email,
  27. dob: dob,
  28. permission: 0
  29. };
  30.  
  31. accountRepo.add(user).then(value => {
  32. var vm = {
  33. showError: true,
  34. errorMsg: 'Register successfull.Please login.'
  35. };
  36. res.render('account/register',vm);
  37. });
  38. });
  39.  
  40. router.get('/login', (req, res) => {
  41. res.render('account/login');
  42. });
  43.  
  44. router.post('/login', (req, res) => {
  45. var user = {
  46. username: req.body.username,
  47. password: SHA256(req.body.rawPWD).toString()
  48. };
  49.  
  50. accountRepo.login(user).then(rows => {
  51. if (rows.length > 0) {
  52. if (rows[0].f_Permission === 0) {
  53. req.session.isLogged = true;
  54. req.session.user = rows[0];
  55. req.session.cart = [];
  56.  
  57. var url = '/';
  58. if (req.query.retUrl) {
  59. url = req.query.retUrl;
  60. }
  61. res.redirect(url);
  62. }
  63. else {
  64. req.session.isLogged = true;
  65. req.session.user = rows[0];
  66. req.session.cart = [];
  67. res.redirect('/admin');
  68. }
  69.  
  70. } else {
  71. var vm = {
  72. showError: true,
  73. errorMsg: 'Login failed'
  74. };
  75. res.render('account/login', vm);
  76. }
  77. });
  78. });
  79.  
  80.  
  81. router.get('/profile', (req, res) => {
  82. res.render('account/profile');
  83. });
  84.  
  85. router.post('/profile', (req, res) => {
  86.  
  87. var dob = moment(req.body.dob, 'D/M/YYYY')
  88. .format('YYYY-MM-DD');
  89.  
  90. var password = req.session.user.f_Password;
  91. if (req.body.new_password != ""){
  92. password = SHA256(req.body.new_password).toString()
  93. }
  94. var user = {
  95. id:req.body.id,
  96. name: req.body.name,
  97. password: password,
  98. email: req.body.email,
  99. dob: dob,
  100. permission: 0
  101. };
  102.  
  103. accountRepo.update(user).then(value => {
  104. var vm = {
  105. showError: true,
  106. errorMsg: 'Update successfull!'
  107. };
  108.  
  109. req.session.user.f_Name = user.name;
  110. req.session.user.f_Password = user.password;
  111. req.session.user.f_Email = user.email;
  112. req.session.user.f_DOB = user.dob
  113. res.redirect('/account/profile');
  114. });
  115. });
  116.  
  117. router.post('/logout', (req, res) => {
  118. req.session.isLogged = false;
  119. req.session.user = null;
  120. req.session.cart = [];
  121. res.redirect('/');
  122. });
  123.  
  124. router.get('/history', restrict, (req, res) => {
  125. var orders = orderRepo.loadByUser(req.session.user.f_ID);
  126. var list_order = []
  127. Promise.all([orders]).then(([rows]) => {
  128. for (let i = 0;i < rows.length; i++) {
  129. var order = orderdetailsRepo.singleID(rows[i].OrderID);
  130. list_order.push(order);
  131. }
  132. Promise.all(list_order).then(list => {
  133. var items = rows;
  134. for (let j = 0;j < rows.length; j++) {
  135. var item = [];
  136. list.forEach(element => {
  137. for (let i = 0;i < element.length; i++) {
  138. if (element[i].OrderID == rows[j].OrderID) {
  139. item.push(element[i]);
  140. }
  141. }
  142. })
  143. items[j]['item'] = item;
  144. console.log(item)
  145. items[j].OrderDate = items[j].OrderDate.getDate() + '/' + items[j].OrderDate.getMonth() + '/' + (items[j].OrderDate.getYear() + 1900);
  146. }
  147. res.render('account/history', {items: items});
  148. })
  149. })
  150. });
  151.  
  152. module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement