aboutsummaryrefslogtreecommitdiff
path: root/src/server.js
diff options
context:
space:
mode:
authorMark Powers <mark@marks.kitchen>2021-02-23 20:08:20 -0600
committerMark Powers <mark@marks.kitchen>2021-02-23 20:08:20 -0600
commit4ed0b48232f2d0fdaa1ed85f243119608d2d5caf (patch)
tree404517c21ed673043fa420e0233ef556ffcf0f01 /src/server.js
parentc18dd9ef6c9b3407862db7f01372bc65bb1c3721 (diff)
Add apicache to routes
Diffstat (limited to 'src/server.js')
-rw-r--r--src/server.js56
1 files changed, 28 insertions, 28 deletions
diff --git a/src/server.js b/src/server.js
index 2198923..297c135 100644
--- a/src/server.js
+++ b/src/server.js
@@ -7,6 +7,7 @@ const uuidv4 = require('uuid/v4');
const path = require('path');
const rss = require('rss');
const marked = require('marked');
+const cache = require('apicache').middleware;
const templates = require('./templates');
@@ -155,28 +156,28 @@ function setUpRoutes(models, jwtFunctions, database, templates) {
next()
})
- server.get('/', async (req, res) => {
+ server.get('/', cache('5 minutes'), async (req, res) => {
let posts = await formatPostsForType(models, "index")
let body = templates["index"]({posts});
res.status(200).send(body)
})
- server.get('/bread', async (req, res) => {
+ server.get('/bread', cache('5 minutes'), async (req, res) => {
let posts = await formatPostsForType(models, "bread")
let body = templates["bread"]({posts});
res.status(200).send(body)
})
- server.get('/blog', async (req, res) => {
+ server.get('/blog', cache('5 minutes'), async (req, res) => {
let posts = await formatPostsForType(models, "blog")
let body = templates["blog"]({posts});
res.status(200).send(body)
})
- server.get('/post/:type/:id', async (req, res) => {
+ server.get('/post/:type/:id', cache('5 minutes'), async (req, res) => {
let posts = await formatPostsforSingle(models, req.params.type, req.params.id)
let date = posts[0].createdAt;
let body = templates["blog-single"]({posts, date});
res.status(200).send(body)
})
- server.get('/tags/:name', async (req, res) => {
+ server.get('/tags/:name', cache('5 minutes'), async (req, res) => {
const { name } = req.params;
const postsWithTag = await models.tags.findAll({ attributes: ["postId"], where: { text: name } })
.map(function (x) {
@@ -195,30 +196,29 @@ function setUpRoutes(models, jwtFunctions, database, templates) {
res.status(200).send(body)
})
- server.get('/admin', (req, res) => res.sendFile(__dirname + "/html/admin.html"));
- server.get('/login', (req, res) => res.sendFile(__dirname + "/html/login.html"))
- server.get('/email', (req, res) => res.sendFile(__dirname + "/html/email.html"))
- server.get('/email-success', (req, res) => res.sendFile(__dirname + "/html/email-success.html"))
- server.get('/feed', (req, res) => res.sendFile(__dirname + "/html/feed.html"));
- server.get('/essay', (req, res) => res.sendFile(__dirname + "/html/essay.html"));
- // server.get('/misc', (req, res) => res.sendFile(__dirname + "/html/misc.html"));
- server.get('/word-square', (req, res) => res.sendFile(__dirname + "/html/word-square.html"));
- server.get('/chess', (req, res) => res.sendFile(__dirname + "/html/chess.html"));
- server.get('/admin/chess', async (req, res, next) => res.sendFile(__dirname + "/html/chess.html"));
+ server.get('/admin', cache('5 minutes'), (req, res) => res.sendFile(__dirname + "/html/admin.html"));
+ server.get('/login', cache('5 minutes'), (req, res) => res.sendFile(__dirname + "/html/login.html"))
+ server.get('/email', cache('5 minutes'), (req, res) => res.sendFile(__dirname + "/html/email.html"))
+ server.get('/email-success', cache('5 minutes'), (req, res) => res.sendFile(__dirname + "/html/email-success.html"))
+ server.get('/feed', cache('5 minutes'), (req, res) => res.sendFile(__dirname + "/html/feed.html"));
+ server.get('/essay', cache('5 minutes'), (req, res) => res.sendFile(__dirname + "/html/essay.html"));
+ server.get('/word-square', cache('5 minutes'), (req, res) => res.sendFile(__dirname + "/html/word-square.html"));
+ server.get('/chess', cache('5 minutes'), (req, res) => res.sendFile(__dirname + "/html/chess.html"));
+ server.get('/admin/chess', cache('5 minutes'), async (req, res, next) => res.sendFile(__dirname + "/html/chess.html"));
// server.get('/projects', (req, res) => res.sendFile(__dirname + "/html/projects.html"));
- server.get('/zines', (req, res) => res.sendFile(__dirname + "/public/zines.html"));
+ server.get('/zines', cache('5 minutes'), (req, res) => res.sendFile(__dirname + "/public/zines.html"));
server.use('/static', express.static(__dirname + '/public'))
- server.get('/misc', async (req, res) => {
+ server.get('/misc', cache('5 minutes'), async (req, res) => {
let body = templates["misc"]();
res.status(200).send(body)
})
- server.get('/projects', async (req, res) => {
+ server.get('/projects', cache('5 minutes'), async (req, res) => {
let body = templates["projects"]();
res.status(200).send(body)
})
- server.get('/wordsquares/best', async (req, res, next) => {
+ server.get('/wordsquares/best', cache('5 minutes'), async (req, res, next) => {
var best = await database.query("select words, name from wordsquares where best = 1", { type: database.QueryTypes.SELECT })
res.status(200).send({ best: best });
})
@@ -252,7 +252,7 @@ function setUpRoutes(models, jwtFunctions, database, templates) {
res.status(400).send(e.message);
}
})
- server.get('/posts/:type', async (req, res, next) => {
+ server.get('/posts/:type', cache('5 minutes'), async (req, res, next) => {
try {
const { type } = req.params;
var posts = await models.posts.findAll({
@@ -266,7 +266,7 @@ function setUpRoutes(models, jwtFunctions, database, templates) {
res.status(400).send(e.message);
}
})
- server.get('/posts/:type/:id', async (req, res, next) => {
+ server.get('/posts/:type/:id', cache('5 minutes'), async (req, res, next) => {
try {
const { type, id } = req.params;
var posts = await models.posts.findAll({
@@ -354,22 +354,22 @@ function setUpRoutes(models, jwtFunctions, database, templates) {
})
- server.get('/favicon.ico', (req, res) => res.sendFile(__dirname + "/icon/favicon.ico"))
- server.get('/favicon.svg', (req, res) => res.sendFile(__dirname + "/icon/favicon.svg"))
- server.get('/css/:id', (req, res) => {
+ server.get('/favicon.ico', cache('5 minutes'), (req, res) => res.sendFile(__dirname + "/icon/favicon.ico"))
+ server.get('/favicon.svg', cache('5 minutes'), (req, res) => res.sendFile(__dirname + "/icon/favicon.svg"))
+ server.get('/css/:id', cache('5 minutes'), (req, res) => {
res.sendFile(__dirname + "/css/" + req.params.id);
});
- server.get('/uploads/:id', (req, res) => {
+ server.get('/uploads/:id', cache('5 minutes'), (req, res) => {
res.sendFile(__dirname + "/uploads/" + req.params.id);
});
- server.get('/essay/:id', (req, res) => {
+ server.get('/essay/:id', cache('5 minutes'), (req, res) => {
res.sendFile(__dirname + "/html/essay/" + req.params.id);
});
- server.get('/js/:id', (req, res) => {
+ server.get('/js/:id', cache('5 minutes'), (req, res) => {
res.sendFile(__dirname + "/js/" + req.params.id);
});
- server.get('/feed.xml', async (req, res) => {
+ server.get('/feed.xml', cache('1 hour'), async (req, res) => {
var feed = new rss({
title: "Mark's Kitchen",
description: "Posts from marks.kitchen",