rewrite website
This commit is contained in:
49
src/actions/feedback.ts
Normal file
49
src/actions/feedback.ts
Normal 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({})
|
||||
};
|
||||
}
|
||||
})
|
||||
};
|
||||
Reference in New Issue
Block a user