Added elaborate template switching.
This commit is contained in:
@@ -7,7 +7,6 @@ import session from 'express-session';
|
||||
import RedisStore from 'connect-redis';
|
||||
import compression from 'compression';
|
||||
import cookie from 'cookie';
|
||||
import { renderPage } from 'vike/server'; // eslint-disable-line import/extensions
|
||||
|
||||
import redis from '../redis.js';
|
||||
|
||||
@@ -22,6 +21,8 @@ import { fetchTagsApi } from './tags.js';
|
||||
|
||||
import { graphqlApi } from './graphql.js';
|
||||
|
||||
import mainHandler from './main.js';
|
||||
|
||||
import {
|
||||
setUserApi,
|
||||
loginApi,
|
||||
@@ -31,9 +32,13 @@ import {
|
||||
|
||||
import {
|
||||
fetchUserApi,
|
||||
fetchUserTemplatesApi,
|
||||
createTemplateApi,
|
||||
removeTemplateApi,
|
||||
} from './users.js';
|
||||
|
||||
import {
|
||||
fetchUserStashesApi,
|
||||
createStashApi,
|
||||
removeStashApi,
|
||||
stashActorApi,
|
||||
@@ -54,8 +59,6 @@ import {
|
||||
updateNotificationsApi,
|
||||
} from './alerts.js';
|
||||
|
||||
import { fetchUnseenNotificationsCount } from '../alerts.js';
|
||||
|
||||
import initLogger from '../logger.js';
|
||||
|
||||
const logger = initLogger();
|
||||
@@ -141,6 +144,7 @@ export default async function initServer() {
|
||||
router.patch('/api/users/:userId/notifications/:notificationId', updateNotificationApi);
|
||||
|
||||
// STASHES
|
||||
router.get('/api/users/:userId/stashes', fetchUserStashesApi);
|
||||
router.post('/api/stashes', createStashApi);
|
||||
router.patch('/api/stashes/:stashId', updateStashApi);
|
||||
router.delete('/api/stashes/:stashId', removeStashApi);
|
||||
@@ -153,6 +157,11 @@ export default async function initServer() {
|
||||
router.delete('/api/stashes/:stashId/scenes/:sceneId', unstashSceneApi);
|
||||
router.delete('/api/stashes/:stashId/movies/:movieId', unstashMovieApi);
|
||||
|
||||
// SUMMARY TEMPLATES
|
||||
router.get('/api/users/:userId/templates', fetchUserTemplatesApi);
|
||||
router.post('/api/templates', createTemplateApi);
|
||||
router.delete('/api/templates/:templateId', removeTemplateApi);
|
||||
|
||||
// ALERTS
|
||||
router.get('/api/alerts', fetchAlertsApi);
|
||||
router.post('/api/alerts', createAlertApi);
|
||||
@@ -186,61 +195,7 @@ export default async function initServer() {
|
||||
next();
|
||||
});
|
||||
|
||||
router.get('*', async (req, res, next) => {
|
||||
const unseenNotifications = await fetchUnseenNotificationsCount(req.user);
|
||||
|
||||
const pageContextInit = {
|
||||
urlOriginal: req.originalUrl,
|
||||
urlQuery: req.query, // vike's own query does not apply boolean parser
|
||||
headers: req.headers,
|
||||
cookies: req.cookies,
|
||||
tagFilter: req.tagFilter,
|
||||
user: req.user && {
|
||||
id: req.user.id,
|
||||
username: req.user.username,
|
||||
email: req.user.email,
|
||||
avatar: req.user.avatar,
|
||||
stashes: req.user.stashes,
|
||||
primaryStash: req.user.primaryStash,
|
||||
},
|
||||
env: {
|
||||
theme: req.cookies.theme || req.headers['sec-ch-prefers-color-scheme'] || 'light',
|
||||
allowLogin: config.auth.login,
|
||||
allowSignup: config.auth.signup,
|
||||
maxMatches: config.database.manticore.maxMatches,
|
||||
maxAggregateSize: config.database.manticore.maxAggregateSize,
|
||||
media: config.media,
|
||||
psa: config.psa,
|
||||
links: config.links,
|
||||
},
|
||||
meta: {
|
||||
unseenNotifications,
|
||||
},
|
||||
};
|
||||
|
||||
const pageContext = await renderPage(pageContextInit);
|
||||
const { httpResponse } = pageContext;
|
||||
|
||||
if (pageContext.errorWhileRendering) {
|
||||
console.error(pageContext.errorWhileRendering);
|
||||
}
|
||||
|
||||
if (!httpResponse) {
|
||||
next();
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
if (res.writeEarlyHints) {
|
||||
res.writeEarlyHints({ link: httpResponse.earlyHints.map((e) => e.earlyHintLink) });
|
||||
}
|
||||
*/
|
||||
|
||||
httpResponse.headers.forEach(([name, value]) => res.setHeader(name, value));
|
||||
res.status(httpResponse.statusCode);
|
||||
// For HTTP streams use httpResponse.pipe() instead, see https://vike.dev/stream
|
||||
res.send(httpResponse.body);
|
||||
});
|
||||
router.get('*', mainHandler);
|
||||
|
||||
router.use(errorHandler);
|
||||
app.use(router);
|
||||
|
||||
Reference in New Issue
Block a user