fix: reload nextjs api route settings on saves

This commit is contained in:
diced 2025-02-20 11:48:57 -08:00
parent 60e9b52100
commit 1801287deb
No known key found for this signature in database
GPG key ID: 370BD1BA142842D1
3 changed files with 27 additions and 0 deletions

View file

@ -40,6 +40,7 @@ export function settingsOnSubmit(router: NextRouter, form: ReturnType<typeof use
});
await fetch('/reload');
await fetch('/api/reload');
mutate('/api/server/settings', data);
router.replace(router.asPath, undefined, { scroll: false });
}

View file

@ -95,6 +95,7 @@ export default function ImportButton() {
});
await fetch('/reload');
await fetch('/api/reload');
}
};

25
src/pages/api/reload.ts Normal file
View file

@ -0,0 +1,25 @@
import { reloadSettings } from '@/lib/config';
import { prisma } from '@/lib/db';
import { isAdministrator } from '@/lib/role';
import { getSession } from '@/server/session';
import { NextApiRequest, NextApiResponse } from 'next/types';
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
const session = await getSession(req, res);
if (!session.id || !session.sessionId) return res.redirect(302, '/auth/login');
const user = await prisma.user.findFirst({
where: {
sessions: {
has: session.sessionId,
},
},
});
if (!user) return res.redirect(302, '/dashboard');
if (!isAdministrator(user.role)) return res.redirect(302, '/dashboard');
await reloadSettings();
return res.json({ success: true });
}