From 9c72547610ffd981091d1f1b5681591411956cfa Mon Sep 17 00:00:00 2001 From: DGoel1602 Date: Mon, 12 Jan 2026 13:50:30 -0500 Subject: [PATCH 1/2] Added procedure hooking to forms --- packages/api/src/routers/forms.ts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/packages/api/src/routers/forms.ts b/packages/api/src/routers/forms.ts index 385546c2..68835fba 100644 --- a/packages/api/src/routers/forms.ts +++ b/packages/api/src/routers/forms.ts @@ -24,6 +24,20 @@ import { minioClient } from "../minio/minio-client"; import { adminProcedure, protectedProcedure, publicProcedure } from "../trpc"; import { generateJsonSchema, regenerateMediaUrls } from "../utils"; +// eslint-disable-next-line @typescript-eslint/no-explicit-any +type FormResponseCallBack = (userId: string, response: any) => undefined; + +/** + Example form call back handler, please reference :pray: + *const handle_goated_form_response = ((userId: string, response: { answer: string }) => { + * console.log(userId, response); + *}) satisfies FormResponseCallBack; +*/ + +const handleCallbacks: Record = { + //"goated-form": handle_goated_form_response, +}; + export const formsRouter = { createForm: adminProcedure .input( @@ -258,6 +272,18 @@ export const formsRouter = { }); } + const handler = handleCallbacks[form.slugName]; + if (handler) { + try { + handler(userId, input.responseData); + } catch { + throw new TRPCError({ + message: "Form response failed form validation", + code: "BAD_REQUEST", + }); + } + } + await db.insert(FormResponse).values({ userId, ...input, From e6990c55f34a2f8608673db05e54ba55bc9ffb2f Mon Sep 17 00:00:00 2001 From: DGoel1602 Date: Mon, 12 Jan 2026 13:51:58 -0500 Subject: [PATCH 2/2] Normal names dont wanna be weird in prod --- packages/api/src/routers/forms.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/api/src/routers/forms.ts b/packages/api/src/routers/forms.ts index 68835fba..092dcb9b 100644 --- a/packages/api/src/routers/forms.ts +++ b/packages/api/src/routers/forms.ts @@ -29,13 +29,13 @@ type FormResponseCallBack = (userId: string, response: any) => undefined; /** Example form call back handler, please reference :pray: - *const handle_goated_form_response = ((userId: string, response: { answer: string }) => { + *const handle_sample_form_response = ((userId: string, response: { answer: string }) => { * console.log(userId, response); *}) satisfies FormResponseCallBack; */ const handleCallbacks: Record = { - //"goated-form": handle_goated_form_response, + //"sample-form": handle_sample_form_response, }; export const formsRouter = {