added admin dashboard

This commit is contained in:
2026-04-20 12:48:58 +02:00
parent 6145775922
commit d3f740cfa9
56 changed files with 4438 additions and 669 deletions
+35
View File
@@ -0,0 +1,35 @@
import { readJson, writeJson } from './storage';
import { randomUUID } from 'node:crypto';
export type Submission = {
id: string;
name: string;
dog: string;
message: string;
createdAt: string;
ip?: string;
};
const FILE = 'submissions.json';
export function listSubmissions(): Submission[] {
const items = readJson<Submission[]>(FILE, []);
return [...items].sort((a, b) => b.createdAt.localeCompare(a.createdAt));
}
export function addSubmission(input: Omit<Submission, 'id' | 'createdAt'>): Submission {
const items = readJson<Submission[]>(FILE, []);
const entry: Submission = {
id: randomUUID(),
createdAt: new Date().toISOString(),
...input
};
items.push(entry);
writeJson(FILE, items);
return entry;
}
export function deleteSubmission(id: string): void {
const items = readJson<Submission[]>(FILE, []);
writeJson(FILE, items.filter((s) => s.id !== id));
}