From 35604e56745ce384161af0da8b5fee522f582118 Mon Sep 17 00:00:00 2001 From: Ansgar Prause <4215065+ansgarprause@users.noreply.github.com> Date: Sun, 16 Apr 2023 19:21:40 +0200 Subject: [PATCH] Allow passing Discourse token as param (#2) Co-authored-by: Marcus Weiner --- src/handler.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/handler.ts b/src/handler.ts index ec07a87..8be8da2 100644 --- a/src/handler.ts +++ b/src/handler.ts @@ -1,4 +1,4 @@ -import { serve } from "https://deno.land/std@0.177.0/http/server.ts"; +import { Handler, serve } from "https://deno.land/std@0.177.0/http/server.ts"; import { z } from "https://deno.land/x/zod@v3.20.5/index.ts"; import ical, { ICalEventData } from "https://esm.sh/v108/ical-generator@3.6.1"; import { @@ -8,11 +8,20 @@ import { const discourseUrl = Deno.env.get("DISCOURSE_URL"); -const handle = async () => { - let body; +const handle: Handler = async (request) => { const eventsUrl = new URL("/discourse-post-event/events.json", discourseUrl); + + const requestUrl = new URL(request.url); + const token = requestUrl.searchParams.get("token"); + + let body; try { - const response = await fetch(eventsUrl); + const response = await fetch( + eventsUrl, + token + ? { headers: { Cookie: `_t=${encodeURIComponent(token)}` } } + : undefined + ); if (!response.ok) { console.error("Response status", response.status); return new Response("Failed to fetch events", { status: 502 });