feat: fetching signatures from backend endpoint

This commit is contained in:
2025-11-10 22:36:54 +00:00
parent 4371b26423
commit f8712015c0
9 changed files with 91 additions and 33 deletions

View File

@@ -1,4 +1,5 @@
import { ENV } from "./env";
import { getPetitions } from "./routes/get-petitions";
import { signPetition } from "./routes/sign-petition";
const CORS_HEADERS = {
@@ -29,7 +30,8 @@ const server = Bun.serve({
port: ENV.PORT,
routes: {
"/health": new Response("alive!"),
"/sign-petition": {
"/sign": {
GET: withCors(getPetitions),
POST: withCors(signPetition),
OPTIONS: allowCors,
},

View File

@@ -1,8 +1,19 @@
import { db } from "./database";
import { signaturesTable } from "./schema";
export const insertSignature = async (signature: typeof signaturesTable.$inferInsert): Promise<typeof signaturesTable.$inferSelect | undefined> => {
const [insertedSignature] = await db.insert(signaturesTable).values(signature).returning();
export const insertSignature = async (
signature: typeof signaturesTable.$inferInsert,
): Promise<typeof signaturesTable.$inferSelect | undefined> => {
const [insertedSignature] = await db
.insert(signaturesTable)
.values(signature)
.returning();
return insertedSignature;
}
return insertedSignature;
};
export const getSignatures = async (): Promise<
Array<typeof signaturesTable.$inferSelect>
> => {
return db.select().from(signaturesTable);
};

View File

@@ -0,0 +1,10 @@
import { signedPetitionArraySchema } from "types";
import { getSignatures } from "../models";
export const getPetitions = async (_: Request): Promise<Response> => {
const signatures = await getSignatures();
const parsedSignatures = signedPetitionArraySchema.parse(signatures);
return Response.json(parsedSignatures, { status: 200 });
};