First pass

This commit is contained in:
2025-12-25 22:10:06 -07:00
parent a2af6195f9
commit 455c3dbd9a
58 changed files with 10299 additions and 3 deletions

View File

@@ -0,0 +1,40 @@
import type { APIRoute } from 'astro';
import { db } from '../../../db';
import { siteSettings } from '../../../db/schema';
import { eq } from 'drizzle-orm';
import { nanoid } from 'nanoid';
export const POST: APIRoute = async ({ request, locals, redirect }) => {
const user = locals.user;
if (!user || !user.isSiteAdmin) {
return new Response('Unauthorized', { status: 403 });
}
const formData = await request.formData();
const registrationEnabled = formData.get('registration_enabled') === 'on';
// Check if setting exists
const existingSetting = await db.select()
.from(siteSettings)
.where(eq(siteSettings.key, 'registration_enabled'))
.get();
if (existingSetting) {
// Update
await db.update(siteSettings)
.set({
value: registrationEnabled ? 'true' : 'false',
updatedAt: new Date()
})
.where(eq(siteSettings.key, 'registration_enabled'));
} else {
// Insert
await db.insert(siteSettings).values({
id: nanoid(),
key: 'registration_enabled',
value: registrationEnabled ? 'true' : 'false',
});
}
return redirect('/admin');
};