31 lines
780 B
TypeScript
31 lines
780 B
TypeScript
import { publicProcedure } from '@/helpers/server/trpc'
|
|
import { TRPCError } from '@trpc/server'
|
|
import { env } from '@typebot.io/env'
|
|
import { z } from 'zod'
|
|
|
|
export const subscribePreviewWebhook = publicProcedure
|
|
.meta({
|
|
openapi: {
|
|
method: 'GET',
|
|
path: '/v1/whatsapp/preview/webhook',
|
|
summary: 'Subscribe webhook',
|
|
tags: ['WhatsApp'],
|
|
},
|
|
})
|
|
.input(
|
|
z.object({
|
|
'hub.challenge': z.string(),
|
|
'hub.verify_token': z.string(),
|
|
})
|
|
)
|
|
.output(z.number())
|
|
.query(
|
|
async ({
|
|
input: { 'hub.challenge': challenge, 'hub.verify_token': token },
|
|
}) => {
|
|
if (token !== env.ENCRYPTION_SECRET)
|
|
throw new TRPCError({ code: 'UNAUTHORIZED', message: 'Unauthorized' })
|
|
return Number(challenge)
|
|
}
|
|
)
|