Files
AITrader/app/routes/api/admin/settings/index.ts
T

24 lines
918 B
TypeScript

import type { LoaderFunction, ActionFunction } from '@remix-run/node';
import { json } from '@remix-run/node';
import { settingsService } from '~/lib/settings.server';
import { requireAdmin } from '~/lib/auth.server';
export const loader: LoaderFunction = async ({ request }) => {
await requireAdmin(request);
await settingsService.init?.();
const entries: any[] = [];
// @ts-ignore access cache
for (const key of (settingsService as any).cache.keys()) {
entries.push({ key, value: await settingsService.get(key) });
}
return json(entries);
};
export const action: ActionFunction = async ({ request }) => {
await requireAdmin(request);
const body = await request.json();
if (!body || !body.key) return new Response('Missing key', { status: 400 });
const created = await settingsService.set(body.key, body.value, 'admin');
return new Response(JSON.stringify(created), { status: 201 });
};