Browse Source

improve: with zod validation

pull/1397/head
tetuaoro 7 months ago
committed by Bernd Storath
parent
commit
efbf04271d
  1. 44
      src/server/api/admin/migration.post.ts

44
src/server/api/admin/migration.post.ts

@ -1,31 +1,33 @@
import { z } from 'zod';
// TODO: check what are missing
type Client = {
id: string;
name: string;
address: string;
privateKey: string;
publicKey: string;
preSharedKey: string;
createdAt: string;
updatedAt: string;
enabled: boolean;
};
const clientSchema = z.object({
id: z.string(),
name: z.string(),
address: z.string(),
privateKey: z.string(),
publicKey: z.string(),
preSharedKey: z.string(),
createdAt: z.string(),
updatedAt: z.string(),
enabled: z.boolean(),
});
type OldConfig = {
server: {
privateKey: string;
publicKey: string;
address: string;
};
clients: Record<string, Client>;
};
const oldConfigSchema = z.object({
server: z.object({
privateKey: z.string(),
publicKey: z.string(),
address: z.string(),
}),
clients: z.record(z.string(), clientSchema),
});
export default defineEventHandler(async (event) => {
const { file } = await readValidatedBody(event, validateZod(fileType, event));
const file_ = JSON.parse(file) as OldConfig;
const file_ = await oldConfigSchema.parseAsync(JSON.parse(file));
// TODO: handle migration
console.log('file_', file_);
console.log('zod file_', file_);
return { success: true };
});

Loading…
Cancel
Save