root.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. "use strict";
  2. const config = require('config');
  3. const redis = require('../helpers/redis');
  4. const express = require('express');
  5. const crypto = require('crypto');
  6. const router = express.Router();
  7. const mailer = require('../helpers/mailer');
  8. const _ = require('underscore');
  9. const db = require('../models/db');
  10. const Sequelize = require('sequelize');
  11. const Op = Sequelize.Op;
  12. const uuidv4 = require('uuid/v4');
  13. router.get('/', (req, res) => {
  14. res.render('index', { title: 'Spaces' });
  15. });
  16. router.get('/ping', (req, res) => {
  17. res.status(200).json({"status": "ok"})
  18. });
  19. router.get('/spaces', (req, res) => {
  20. res.render('spacedeck', { title: 'Spaces' });
  21. });
  22. router.get('/not_found', (req, res) => {
  23. res.render('not_found', { title: 'Spaces' });
  24. });
  25. router.get('/confirm/:token', (req, res) => {
  26. res.render('spacedeck', { title: 'Space' });
  27. });
  28. router.get('/folders/:id', (req, res) => {
  29. res.render('spacedeck', {});
  30. });
  31. router.get('/signup', (req, res) => {
  32. res.render('spacedeck', {});
  33. });
  34. router.get('/accept/:id', (req, res) => {
  35. res.render('spacedeck', {});
  36. });
  37. router.get('/password-reset', (req, res) => {
  38. res.render('spacedeck', { title: 'Signup' });
  39. });
  40. router.get('/password-confirm/:token', (req, res) => {
  41. res.render('spacedeck', { title: 'Signup' });
  42. });
  43. router.get('/team', (req, res) => {
  44. res.render('spacedeck');
  45. });
  46. router.get('/de/*', (req, res) => {
  47. res.redirect("/t/de");
  48. });
  49. router.get('/de', (req, res) => {
  50. res.redirect("/t/de");
  51. });
  52. router.get('/fr/*', (req, res) => {
  53. res.redirect("/t/fr");
  54. });
  55. router.get('/fr', (req, res) => {
  56. res.redirect("/t/fr");
  57. });
  58. router.get('/en/*', (req, res) => {
  59. res.redirect("/t/en");
  60. });
  61. router.get('/en', (req, res) => {
  62. res.redirect("/t/end");
  63. });
  64. router.get('/it', (req, res) => {
  65. res.redirect("/t/en");
  66. });
  67. router.get('/account', (req, res) => {
  68. res.render('spacedeck');
  69. });
  70. router.get('/login', (req, res) => {
  71. res.render('spacedeck');
  72. });
  73. router.get('/logout', (req, res) => {
  74. res.render('spacedeck');
  75. });
  76. router.get('/contact', (req, res) => {
  77. res.render('public/contact');
  78. });
  79. router.get('/about', (req, res) => {
  80. res.render('public/about');
  81. });
  82. router.get('/terms', (req, res) => {
  83. res.render('public/terms');
  84. });
  85. router.get('/privacy', (req, res) => {
  86. res.render('public/privacy');
  87. });
  88. router.get('/t/:id', (req, res) => {
  89. res.cookie('spacedeck_locale', req.params.id, { maxAge: 900000, httpOnly: true });
  90. var path = "/";
  91. if (req.query.r=="login" || req.query.r=="signup") {
  92. path = "/"+req.query.r;
  93. }
  94. res.redirect(path);
  95. });
  96. router.get('/s/:token', (req, res) => {
  97. var token = req.params.token;
  98. if (token.split("-").length > 0) {
  99. token = token.split("-")[0];
  100. }
  101. db.Space.findOne({where: {"edit_hash": token}}).then(function (space) {
  102. if (space) {
  103. if (req.accepts('text/html')){
  104. res.redirect("/spaces/"+space._id + "?spaceAuth=" + token);
  105. } else {
  106. res.status(200).json(space);
  107. }
  108. } else {
  109. if (req.accepts('text/html')) {
  110. res.status(404).render('not_found', { title: 'Page Not Found.' });
  111. } else {
  112. res.status(404).json({});
  113. }
  114. }
  115. });
  116. });
  117. router.get('/spaces/:id', (req, res) => {
  118. res.render('spacedeck', { title: 'Space' });
  119. });
  120. module.exports = router;