summaryrefslogtreecommitdiff
path: root/routes.js
diff options
context:
space:
mode:
Diffstat (limited to 'routes.js')
-rw-r--r--routes.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/routes.js b/routes.js
new file mode 100644
index 0000000..d07e791
--- /dev/null
+++ b/routes.js
@@ -0,0 +1,29 @@
+const express = require('express');
+const path = require('path');
+const Url = require('./db/url-schema.js');
+const utils = require('./utils.js');
+const router = express.Router();
+
+router.get('/', async (req, res) => {
+ res.sendFile('static/index.html', {
+ root: path.join(__dirname)
+ }, () => utils.sendNotFoundError(res));
+});
+
+router.get('/:slug', async (req, res) => {
+ try {
+ const url = await Url.findOne({slug: req.params.slug});
+ if (url)
+ res.redirect(301, url.url);
+ else
+ utils.sendNotFoundError(res);
+ } catch (err) {
+ utils.sendInternalServerError(res);
+ }
+});
+
+router.all('/*', async (req, res) => {
+ utils.sendNotFoundError(res);
+})
+
+module.exports = router;