72 lines
1.8 KiB
JavaScript
72 lines
1.8 KiB
JavaScript
import { render } from 'vike/abort'; /* eslint-disable-line import/extensions */
|
|
|
|
import { fetchUser } from '#/src/users.js';
|
|
import { fetchUserStashes } from '#/src/stashes.js';
|
|
import { fetchAlerts } from '#/src/alerts.js';
|
|
import { fetchSceneRevisions } from '#/src/scenes.js';
|
|
import { fetchActorRevisions } from '#/src/actors.js';
|
|
|
|
async function fetchRevisions(pageContext) {
|
|
if (pageContext.routeParams.username !== pageContext.user?.username) {
|
|
return {};
|
|
}
|
|
|
|
if (pageContext.routeParams.section === 'revisions' && pageContext.routeParams.domain === 'scenes') {
|
|
return fetchSceneRevisions(null, {
|
|
userId: pageContext.user.id,
|
|
limit: 100,
|
|
}, pageContext.user);
|
|
}
|
|
|
|
if (pageContext.routeParams.section === 'revisions' && pageContext.routeParams.domain === 'actors') {
|
|
return fetchActorRevisions(null, {
|
|
userId: pageContext.user.id,
|
|
limit: 100,
|
|
}, pageContext.user);
|
|
}
|
|
|
|
return {};
|
|
}
|
|
|
|
export async function onBeforeRender(pageContext) {
|
|
const [profile, alerts, userRevisions] = await Promise.all([
|
|
fetchUser(pageContext.routeParams.username, {}, pageContext.user),
|
|
pageContext.routeParams.section === 'alerts' && pageContext.routeParams.username === pageContext.user?.username
|
|
? fetchAlerts(pageContext.user)
|
|
: [],
|
|
fetchRevisions(pageContext),
|
|
]);
|
|
|
|
if (!profile) {
|
|
throw render(404, `Cannot find user '${pageContext.routeParams.username}'.`);
|
|
}
|
|
|
|
const {
|
|
revisions,
|
|
actors,
|
|
tags,
|
|
movies,
|
|
avatars,
|
|
} = userRevisions;
|
|
|
|
console.log(userRevisions);
|
|
|
|
const stashes = await fetchUserStashes(profile.id, pageContext.user);
|
|
|
|
return {
|
|
pageContext: {
|
|
title: profile.username,
|
|
pageProps: {
|
|
profile, // differentiate from authed 'user'
|
|
stashes,
|
|
alerts,
|
|
revisions,
|
|
actors,
|
|
tags,
|
|
movies,
|
|
avatars,
|
|
},
|
|
},
|
|
};
|
|
}
|