24 lines
601 B
TypeScript
24 lines
601 B
TypeScript
import { defineAction } from 'astro:actions';
|
|
import { z } from 'astro:schema';
|
|
import { Session } from '@util/session.ts';
|
|
import { Permissions } from '@util/permissions.ts';
|
|
import { db } from '@db/database.ts';
|
|
|
|
export const settings = {
|
|
setSettings: defineAction({
|
|
input: z.object({
|
|
settings: z.array(
|
|
z.object({
|
|
name: z.string(),
|
|
value: z.string().nullable()
|
|
})
|
|
)
|
|
}),
|
|
handler: async (input, context) => {
|
|
Session.actionSessionFromCookies(context.cookies, Permissions.Settings);
|
|
|
|
await db.setSettings(input);
|
|
}
|
|
})
|
|
};
|