From 15bf02f829edd5b1868904abfe867e4805d0fa92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Mon, 13 Nov 2023 21:52:21 -0600 Subject: [PATCH] feat: CORS proxy for neighbors --- .../ratings/current/neighbors/[id]/[count]/route.ts | 12 ------------ src/core/blitz/getRatingsNeighbors.ts | 12 ++++++------ src/core/blitzkrieg/withCORSProxy.ts | 7 +++++++ 3 files changed, 13 insertions(+), 18 deletions(-) delete mode 100644 src/app/api/[region]/ratings/current/neighbors/[id]/[count]/route.ts create mode 100644 src/core/blitzkrieg/withCORSProxy.ts diff --git a/src/app/api/[region]/ratings/current/neighbors/[id]/[count]/route.ts b/src/app/api/[region]/ratings/current/neighbors/[id]/[count]/route.ts deleted file mode 100644 index 10de3f1b1..000000000 --- a/src/app/api/[region]/ratings/current/neighbors/[id]/[count]/route.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { NextResponse } from 'next/server'; -import { Region } from '../../../../../../../../constants/regions'; -import { getRatingsNeighbors } from '../../../../../../../../core/blitz/getRatingsNeighbors'; - -export async function GET( - request: Request, - { params }: { params: { region: Region; id: number; count: number } }, -) { - return NextResponse.json( - await getRatingsNeighbors(params.region, params.id, params.count), - ); -} diff --git a/src/core/blitz/getRatingsNeighbors.ts b/src/core/blitz/getRatingsNeighbors.ts index b7320b104..09ae9e88a 100644 --- a/src/core/blitz/getRatingsNeighbors.ts +++ b/src/core/blitz/getRatingsNeighbors.ts @@ -1,7 +1,7 @@ import { RatingsNeighbors } from '../../commands/ratings'; import { Region } from '../../constants/regions'; -import { context } from '../blitzkrieg/context'; import { patientFetch } from '../blitzkrieg/patientFetch'; +import { withCORSProxy } from '../blitzkrieg/withCORSProxy'; import regionToRegionSubdomain from './regionToRegionSubdomain'; export async function getRatingsNeighbors( @@ -12,11 +12,11 @@ export async function getRatingsNeighbors( ) { const fetcher = usePatientFetcher ? patientFetch : fetch; const response = await fetcher( - context === 'website' - ? `/api/${region}/ratings/current/neighbors/${id}/${count}` - : `https://${regionToRegionSubdomain( - region, - )}.wotblitz.com/en/api/rating-leaderboards/user/${id}/?neighbors=${count}`, + withCORSProxy( + `https://${regionToRegionSubdomain( + region, + )}.wotblitz.com/en/api/rating-leaderboards/user/${id}/?neighbors=${count}`, + ), ); const json = (await response.json()) as RatingsNeighbors; diff --git a/src/core/blitzkrieg/withCORSProxy.ts b/src/core/blitzkrieg/withCORSProxy.ts new file mode 100644 index 000000000..cce2d45ad --- /dev/null +++ b/src/core/blitzkrieg/withCORSProxy.ts @@ -0,0 +1,7 @@ +import { context } from './context'; + +export function withCORSProxy(url: string) { + return context === 'website' + ? `https://corsproxy.io/?${encodeURIComponent(url)}` + : url; +}