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

@@ -3,16 +3,33 @@ import { signedPetitionSchema, signPetitionSchema } from "types";
const backendUrl = import.meta.env.VITE_BACKEND_URL;
export const signedPetitionWithParsedDate = signedPetitionSchema.extend({
createdAt: z.string().transform((date: string) => new Date(date)),
});
const signedPetitionSignatures = z.array(signedPetitionWithParsedDate);
export const getSignatures = async (): Promise<
z.infer<typeof signedPetitionSignatures>
> => {
const res = await fetch(`${backendUrl}/sign`);
const body = await res.json();
const validatedBody = signedPetitionSignatures.parse(body);
return validatedBody;
};
export const signPetition = async (
signature: z.infer<typeof signPetitionSchema>,
): Promise<z.infer<typeof signedPetitionSchema>> => {
const res = await fetch(`${backendUrl}/sign-petition`, {
): Promise<z.infer<typeof signedPetitionWithParsedDate>> => {
const res = await fetch(`${backendUrl}/sign`, {
method: "POST",
body: JSON.stringify(signature),
});
const body = await res.json();
const validatedBody = signedPetitionSchema.parse(body);
const validatedBody = signedPetitionWithParsedDate.parse(body);
return validatedBody;
};