my website at ewancroft.uk
6
fork

Configure Feed

Select the types of activity you want to include in your feed.

debug(webhook): add logging

+38 -11
+38 -11
src/routes/webhook/+server.ts
··· 5 5 import type { RequestHandler } from './$types'; 6 6 7 7 export const POST: RequestHandler = async ({ request }) => { 8 + console.log('[webhook] POST received', { 9 + contentType: request.headers.get('content-type'), 10 + userAgent: request.headers.get('user-agent') 11 + }); 12 + 8 13 // The supporters package reads auth config from process.env directly; 9 14 // bridge SvelteKit's private env into it before any calls. 10 15 process.env.KOFI_VERIFICATION_TOKEN = env.KOFI_VERIFICATION_TOKEN; 11 16 process.env.ATPROTO_DID = PUBLIC_ATPROTO_DID; 12 17 process.env.ATPROTO_APP_PASSWORD = env.ATPROTO_APP_PASSWORD; 13 18 19 + console.log('[webhook] env check', { 20 + hasVerificationToken: !!env.KOFI_VERIFICATION_TOKEN, 21 + hasDid: !!PUBLIC_ATPROTO_DID, 22 + hasAppPassword: !!env.ATPROTO_APP_PASSWORD 23 + }); 24 + 14 25 let payload; 15 26 try { 16 27 payload = await parseWebhook(request); 28 + console.log('[webhook] parsed payload', { 29 + type: payload.type, 30 + from: payload.from_name, 31 + isPublic: payload.is_public, 32 + timestamp: payload.timestamp, 33 + messageId: payload.message_id 34 + }); 17 35 } catch (err) { 18 36 if (err instanceof WebhookError) { 37 + console.error('[webhook] WebhookError', { status: err.status, message: err.message }); 19 38 return json({ error: err.message }, { status: err.status }); 20 39 } 40 + console.error('[webhook] unexpected parse error', err); 21 41 throw err; 22 42 } 23 43 24 44 if (!payload.is_public) { 45 + console.log('[webhook] skipping private payload'); 25 46 return new Response(null, { status: 200 }); 26 47 } 27 48 28 - await appendEvent( 29 - payload.from_name, 30 - payload.type, 31 - payload.tier_name, 32 - payload.timestamp, 33 - { 34 - isSubscriptionPayment: payload.is_subscription_payment, 35 - isFirstSubscriptionPayment: payload.is_first_subscription_payment, 36 - shopItems: payload.shop_items?.map((i) => i.direct_link_code) 37 - } 38 - ); 49 + try { 50 + await appendEvent( 51 + payload.from_name, 52 + payload.type, 53 + payload.tier_name, 54 + payload.timestamp, 55 + { 56 + isSubscriptionPayment: payload.is_subscription_payment, 57 + isFirstSubscriptionPayment: payload.is_first_subscription_payment, 58 + shopItems: payload.shop_items?.map((i) => i.direct_link_code) 59 + } 60 + ); 61 + console.log('[webhook] appendEvent success', { from: payload.from_name, type: payload.type }); 62 + } catch (err) { 63 + console.error('[webhook] appendEvent failed', err); 64 + throw err; 65 + } 39 66 40 67 return new Response(null, { status: 200 }); 41 68 };