Advertisement
Guest User

Untitled

a guest
Nov 30th, 2016
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.80 KB | None | 0 0
  1. const express = require('express');
  2.  
  3. const router = new express.Router();
  4. const xss = require('xss');
  5. const pgp = require('pg-promise')();
  6. const language = require('./language');
  7. const logic = require('./logic');
  8.  
  9.  
  10. const DATABASE = process.env.DATABASE_URL
  11. || 'postgres://postgres:postgres@localhost/data';
  12. const db = pgp(DATABASE);
  13.  
  14.  
  15. // Todo:
  16. // Betra samræmi á milli elemeneta á öllum síðum.
  17. // CSS validator: jigsaw.w3.org/css-validator
  18. // Input á index.pug, nota reduce og fleira til að sía, sbr. verk5.
  19. // Athuga input á add.pug og login.
  20. // catch error á flestu í index.js og gera góða error siðu.+
  21.  
  22. // npm run lint -s
  23. // index.pug þarf að þýða...
  24.  
  25. let amount = 1000;
  26.  
  27. router.post('/lb/:name', (req, res) => {
  28. let page = 'ISK';
  29. let titles = '';
  30. if (language.getLang() === 'en') {
  31. titles = 'Currency from Landbankinn';
  32. } else {
  33. titles = 'Gjaldmiðlar Landsbankans';
  34. }
  35. const url = 'lb';
  36. const url2 = req.params.name;
  37. let currentV = 1;
  38. let bidValue = 1;
  39.  
  40. const amo = xss(req.body.textbox);
  41. amount = amo;
  42.  
  43. logic.currency('lb')
  44. .then((results) => {
  45. for (let i = 0, len = results.data.results.length; i < len; i += 1) {
  46. if (results.data.results[i].shortName === url2) {
  47. currentV = results.data.results[i].askValue;
  48. bidValue = results.data.results[i].bidValue;
  49. page = 'index';
  50. break;
  51. }
  52. }
  53. logic.renderIndex(page, titles, url, res, currentV, url2, amo, bidValue);
  54. });
  55. });
  56.  
  57. router.get('/lb/:name', (req, res) => {
  58. let page = 'ISK';
  59. const url = 'lb';
  60. const url2 = req.params.name;
  61. let titles = '';
  62. if (language.getLang() === 'en') {
  63. titles = 'Currency from Landbankinn';
  64. } else {
  65. titles = 'Gjaldmiðlar Landsbankans';
  66. }
  67. let currentV = 1;
  68. let bidValue = 1;
  69. logic.currency('lb')
  70. .then((results) => {
  71. for (let i = 0, len = results.data.results.length; i < len; i += 1) {
  72. if (results.data.results[i].shortName === url2) {
  73. currentV = results.data.results[i].askValue;
  74. bidValue = results.data.results[i].askValue;
  75. page = 'index';
  76. break;
  77. }
  78. }
  79. logic.renderIndex(page, titles, url, res, currentV, url2, amount, bidValue);
  80. });
  81. });
  82.  
  83. router.post('/arion/:name', (req, res) => {
  84. let page = 'arionISK';
  85. let titles = '';
  86. if (language.getLang() === 'en') {
  87. titles = 'Currency from Arion Bank';
  88. } else {
  89. titles = 'Gjaldmiðlar Arion Banka';
  90. }
  91. const url = 'arion';
  92. const url2 = req.params.name;
  93. let currentV = 1;
  94. let bidValue = 1;
  95.  
  96. const amo = xss(req.body.textbox);
  97. amount = amo;
  98.  
  99. logic.currency('lb')
  100. .then((results) => {
  101. for (let i = 0, len = results.data.results.length; i < len; i += 1) {
  102. if (results.data.results[i].shortName === url2) {
  103. currentV = results.data.results[i].askValue;
  104. bidValue = results.data.results[i].bidValue;
  105. page = 'arion';
  106. break;
  107. }
  108. }
  109. logic.renderIndex(page, titles, url, res, currentV, url2, amo, bidValue);
  110. });
  111. });
  112.  
  113. router.get('/arion/:name', (req, res) => {
  114. let page = 'arionISK';
  115. const url2 = req.params.name;
  116. let titles = '';
  117. if (language.getLang() === 'en') {
  118. titles = 'Currency from Arion Bank';
  119. } else {
  120. titles = 'Gjaldmiðlar Arion Banka';
  121. }
  122. let currentV = 1;
  123. let bidValue = 1;
  124. logic.currency('lb')
  125. .then((results) => {
  126. for (let i = 0, len = results.data.results.length; i < len; i += 1) {
  127. if (results.data.results[i].shortName === url2) {
  128. currentV = results.data.results[i].askValue;
  129. bidValue = results.data.results[i].askValue;
  130. page = 'arion';
  131. break;
  132. }
  133. }
  134. logic.renderIndex(page, titles, 'arion', res, currentV, url2, amount, bidValue);
  135. });
  136. });
  137.  
  138. router.get('/lang/en', (req, res) => {
  139. language.setEn();
  140. res.redirect(req.get('referer'));
  141. });
  142.  
  143. router.get('/lang/is', (req, res) => {
  144. language.setIs();
  145. res.redirect(req.get('referer'));
  146. });
  147.  
  148. router.post('/delete/:id', (req, res) => {
  149. const id = parseInt(req.params.id, 10);
  150. db.one('SELECT commentid FROM response WHERE id = $1', [id])
  151. .then((data) => {
  152. db.none('DELETE FROM response WHERE id = $1', [id])
  153. .then(() => {
  154. logic.renderFaersla(data.commentid, res);
  155. });
  156. });
  157. });
  158.  
  159. router.post('/guestbook/:id', (req, res) => {
  160. const id = parseInt(req.params.id, 10);
  161. logic.renderFaersla(id, res);
  162. });
  163.  
  164. router.get('/guestbook/:id', (req, res) => {
  165. const id = parseInt(req.params.id, 10);
  166. logic.renderFaersla(id, res);
  167. });
  168.  
  169. router.post('/addResponse/:id', (req, res) => {
  170. const id = parseInt(req.params.id, 10);
  171. const response = xss(req.body.data);
  172.  
  173. db.none('INSERT INTO response (commentId, response, respondinguser) ' +
  174. 'VALUES ($1,$2,$3)', [id, response, logic.getName()])
  175. .then(() => {
  176. logic.renderFaersla(id,res);
  177. });
  178. });
  179.  
  180.  
  181. router.get('/frontpage', (req, res) => {
  182. logic.renderFrontpage(res);
  183. });
  184.  
  185. router.get('/', (req, res) => {
  186. logic.setName('');
  187. logic.renderLogin(res);
  188. });
  189.  
  190. router.post('/newuser', (req, res) => {
  191. res.render('newuser');
  192. });
  193.  
  194. router.get('/login', (req, res) => {
  195. logic.setName('');
  196. logic.renderLogin(res);
  197. });
  198.  
  199. router.get('/add', (req, res) => {
  200. renderAdd(res);
  201. });
  202.  
  203. router.post('/add', (req, res) => {
  204. const text = xss(req.body.data);
  205. db.none('INSERT INTO data (name, data) VALUES ($1, $2)', [logic.getName(), text])
  206. .then(() => {
  207. logic.renderGuestbook(res);
  208. });
  209. });
  210.  
  211. router.post('/register', (req, res) => {
  212. const username = xss(req.body.username);
  213. const password = xss(req.body.password);
  214. const passwordagain = xss(req.body.passwordagain);
  215.  
  216. logic.setName(username);
  217. if (password === passwordagain) {
  218. db.none('INSERT INTO users (username, password) VALUES ($1, $2)',
  219. [username, password])
  220. .then(() => {
  221. res.redirect('/frontpage');
  222. })
  223. .catch(() => {
  224. res.render('errorlogin', {
  225. title: 'Error!',
  226. message: 'Notendanafn er nú þegar til!',
  227. });
  228. });
  229. } else {
  230. res.render('errorlogin', {
  231. title: 'Error!',
  232. message: 'Leyniorð ekki eins!',
  233. });
  234. }
  235. });
  236.  
  237. router.post('/verify', (req, res) => {
  238. const username = xss(req.body.username);
  239. const password = xss(req.body.password);
  240. logic.setName(username);
  241.  
  242. db.one('SELECT * FROM users WHERE username = $1 AND password = $2',
  243. [username, password])
  244. .then(() => {
  245. res.redirect('/frontpage');
  246. })
  247. .catch(() => {
  248. res.render('errorlogin', {
  249. title: 'Error!',
  250. message: 'Notendanafn/leyniorð ekki til!',
  251. });
  252. });
  253. });
  254.  
  255. router.get('/guestbook', (req, res) => {
  256. logic.renderGuestbook(res);
  257. });
  258.  
  259. module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement