From b8bc01561d1dc3eda0d13783b0cc833a90aac9a9 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Sun, 16 Jun 2024 09:55:49 +0530 Subject: [PATCH] GET Rewritten, but referencing the existing worker imported from the dashboard --- infra/workers/public-albums/src/index.ts | 37 +++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/infra/workers/public-albums/src/index.ts b/infra/workers/public-albums/src/index.ts index 0bf7ce7bbf..0a93be08c4 100644 --- a/infra/workers/public-albums/src/index.ts +++ b/infra/workers/public-albums/src/index.ts @@ -55,5 +55,40 @@ const areAllowedHeaders = (headers: string | null) => { }; const handleGET = async (request: Request) => { -// TODO + const url = new URL(request.url); + + let accessToken = request.headers.get("X-Auth-Access-Token"); + if (accessToken === undefined) { + console.warn("Using deprecated accessToken query param"); + accessToken = url.searchParams.get("accessToken"); + } + + if (!accessToken) { + console.error("No accessToken provided"); + // return new Response(null, { status: 400 }); + } + + let accessTokenJWT = request.headers.get("X-Auth-Access-Token-JWT"); + if (accessTokenJWT === undefined) { + console.warn("Using deprecated accessTokenJWT query param"); + accessTokenJWT = url.searchParams.get("accessTokenJWT"); + } + + const pathname = url.pathname; + const fileID = url.searchParams.get("fileID"); + if (!fileID) { + console.error("No fileID provided"); + return new Response(null, { status: 400 }); + } + + const params = new URLSearchParams(); + if (accessToken) params.set("accessToken", accessToken); + if (accessTokenJWT) params.set("accessTokenJWT", accessTokenJWT); + + let response = await fetch( + `https://api.ente.io/public-collection/files${pathname}${fileID}?${params.toString()}` + ); + response = new Response(response.body, response); + response.headers.set("Access-Control-Allow-Origin", "*"); + return response; };