rewrite website

This commit is contained in:
2025-10-13 17:22:49 +02:00
parent a6d910f56a
commit 32f28e5324
263 changed files with 17904 additions and 14451 deletions

49
src/actions/feedback.ts Normal file
View File

@@ -0,0 +1,49 @@
import { defineAction } from 'astro:actions';
import { db } from '@db/database.ts';
import { Session } from '@util/session.ts';
import { Permissions } from '@util/permissions.ts';
import { z } from 'astro:schema';
export const feedback = {
addWebsiteFeedback: defineAction({
input: z.object({
content: z.string()
}),
handler: async (input) => {
await db.addFeedback({
event: 'website-feedback',
content: input.content
});
}
}),
addWebsiteContact: defineAction({
input: z.object({
content: z.string(),
email: z.string().email()
}),
handler: async (input) => {
await db.addFeedback({
event: 'website-contact',
content: `${input.content}\n\nEmail: ${input.email}`
});
}
}),
submitFeedback: defineAction({
input: z.object({
urlHash: z.string(),
content: z.string()
}),
handler: async (input) => {
await db.submitFeedback(input);
}
}),
feedbacks: defineAction({
handler: async (_, context) => {
Session.actionSessionFromCookies(context.cookies, Permissions.Feedback);
return {
feedbacks: await db.getFeedbacks({})
};
}
})
};