159 lines
4.3 KiB
JavaScript
159 lines
4.3 KiB
JavaScript
import { Router } from 'express';
|
|
import { renderIndex } from '../views/index';
|
|
import { get404Sketch } from '../views/404Page';
|
|
import { userExists } from '../controllers/user.controller';
|
|
import { projectExists, projectForUserExists } from '../controllers/project.controller';
|
|
import { collectionForUserExists } from '../controllers/collection.controller';
|
|
|
|
const router = new Router();
|
|
|
|
// this is intended to be a temporary file
|
|
// until i figure out isomorphic rendering
|
|
|
|
router.get('/', (req, res) => {
|
|
res.send(renderIndex());
|
|
});
|
|
|
|
router.get('/signup', (req, res) => {
|
|
if (req.user) {
|
|
return res.redirect('/');
|
|
}
|
|
return res.send(renderIndex());
|
|
});
|
|
|
|
router.get('/projects/:project_id', (req, res) => {
|
|
projectExists(req.params.project_id, exists => (
|
|
exists ? res.send(renderIndex()) : get404Sketch(html => res.send(html))
|
|
));
|
|
});
|
|
|
|
router.get('/:username/sketches/:project_id/add-to-collection', (req, res) => {
|
|
projectForUserExists(req.params.username, req.params.project_id, exists => (
|
|
exists ? res.send(renderIndex()) : get404Sketch(html => res.send(html))
|
|
));
|
|
});
|
|
|
|
router.get('/:username/sketches/:project_id', (req, res) => {
|
|
projectForUserExists(req.params.username, req.params.project_id, exists => (
|
|
exists ? res.send(renderIndex()) : get404Sketch(html => res.send(html))
|
|
));
|
|
});
|
|
|
|
router.get('/:username/sketches', (req, res) => {
|
|
userExists(req.params.username, exists => (
|
|
exists ? res.send(renderIndex()) : get404Sketch(html => res.send(html))
|
|
));
|
|
});
|
|
|
|
router.get('/:username/full/:project_id', (req, res) => {
|
|
projectForUserExists(req.params.username, req.params.project_id, exists => (
|
|
exists ? res.send(renderIndex()) : get404Sketch(html => res.send(html))
|
|
));
|
|
});
|
|
|
|
router.get('/full/:project_id', (req, res) => {
|
|
projectExists(req.params.project_id, exists => (
|
|
exists ? res.send(renderIndex()) : get404Sketch(html => res.send(html))
|
|
));
|
|
});
|
|
|
|
router.get('/login', (req, res) => {
|
|
if (req.user) {
|
|
return res.redirect('/');
|
|
}
|
|
return res.send(renderIndex());
|
|
});
|
|
|
|
router.get('/reset-password', (req, res) => {
|
|
res.send(renderIndex());
|
|
});
|
|
|
|
router.get('/reset-password/:reset_password_token', (req, res) => {
|
|
res.send(renderIndex());
|
|
});
|
|
|
|
router.get('/verify', (req, res) => {
|
|
res.send(renderIndex());
|
|
});
|
|
|
|
router.get('/sketches', (req, res) => {
|
|
if (req.user) {
|
|
res.send(renderIndex());
|
|
} else {
|
|
res.redirect('/login');
|
|
}
|
|
});
|
|
|
|
router.get('/assets', (req, res) => {
|
|
if (req.user) {
|
|
res.send(renderIndex());
|
|
} else {
|
|
res.redirect('/login');
|
|
}
|
|
});
|
|
|
|
router.get('/:username/assets', (req, res) => {
|
|
userExists(req.params.username, (exists) => {
|
|
const isLoggedInUser = req.user && req.user.username === req.params.username;
|
|
const canAccess = exists && isLoggedInUser;
|
|
return canAccess ?
|
|
res.send(renderIndex()) :
|
|
get404Sketch(html => res.send(html));
|
|
});
|
|
});
|
|
|
|
router.get('/account', (req, res) => {
|
|
if (req.user) {
|
|
res.send(renderIndex());
|
|
} else {
|
|
res.redirect('/login');
|
|
}
|
|
});
|
|
|
|
router.get('/about', (req, res) => {
|
|
res.send(renderIndex());
|
|
});
|
|
|
|
if (process.env.MOBILE_ENABLED) {
|
|
router.get('/mobile', (req, res) => {
|
|
res.send(renderIndex());
|
|
});
|
|
|
|
router.get('/mobile/preview', (req, res) => {
|
|
res.send(renderIndex());
|
|
});
|
|
|
|
router.get('/mobile/preferences', (req, res) => {
|
|
res.send(renderIndex());
|
|
});
|
|
}
|
|
|
|
router.get('/:username/collections/create', (req, res) => {
|
|
userExists(req.params.username, (exists) => {
|
|
const isLoggedInUser = req.user && req.user.username === req.params.username;
|
|
const canAccess = exists && isLoggedInUser;
|
|
return canAccess ?
|
|
res.send(renderIndex()) :
|
|
get404Sketch(html => res.send(html));
|
|
});
|
|
});
|
|
|
|
router.get('/:username/collections/create', (req, res) => {
|
|
userExists(req.params.username, exists => (
|
|
exists ? res.send(renderIndex()) : get404Sketch(html => res.send(html))
|
|
));
|
|
});
|
|
|
|
router.get('/:username/collections/:id', (req, res) => {
|
|
collectionForUserExists(req.params.username, req.params.id, exists => (
|
|
exists ? res.send(renderIndex()) : get404Sketch(html => res.send(html))
|
|
));
|
|
});
|
|
|
|
router.get('/:username/collections', (req, res) => {
|
|
userExists(req.params.username, exists => (
|
|
exists ? res.send(renderIndex()) : get404Sketch(html => res.send(html))
|
|
));
|
|
});
|
|
|
|
export default router;
|