signing petition through fetch request instead of direct db connection

This commit is contained in:
John Costa
2025-11-10 21:23:09 +00:00
parent 42e4abf438
commit 2a563bbd7a
10 changed files with 131 additions and 14 deletions

View File

@@ -16,6 +16,7 @@
"dotenv": "^17.2.3",
"drizzle-orm": "^0.44.7",
"pg": "^8.16.3",
"zod": "^4.1.12"
"zod": "^4.1.12",
"types": "workspace:*"
}
}

View File

@@ -1,11 +1,6 @@
import { z } from "zod"
import type z from "zod";
import { insertSignature } from "../models";
const signPetitionSchema = z.object({
email: z.string(),
name: z.string().trim().min(1).max(30).optional(),
comment: z.string().trim().min(10).max(10_000).optional(),
})
import { signedPetitionSchema, signPetitionSchema } from 'types'
export const signPetition = async (req: Request): Promise<Response> => {
const body = await req.json()
@@ -15,15 +10,17 @@ export const signPetition = async (req: Request): Promise<Response> => {
return Response.json({ error: validatedBody.error }, { status: 400 });
}
const insertedSignature = await insertSignature({
const _insertedSignature = await insertSignature({
email: validatedBody.data.email,
name: validatedBody.data.name,
comment: validatedBody.data.comment,
})
if (!insertedSignature) {
if (!_insertedSignature) {
return Response.json({ error: "inserting signature in database" }, { status: 500 });
}
const insertedSignature = _insertedSignature satisfies z.infer<typeof signedPetitionSchema>
return Response.json(insertedSignature, { status: 200 });
}