From 33fcbcf7ca25d06a9a6e16488b2372fcca3dfd9a Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Thu, 23 May 2024 23:23:02 +0300 Subject: [PATCH] Add cors to public API endpoints --- app/features/api-public/routes/tournament-match.$id.ts | 5 +++-- .../api-public/routes/tournament.$id.brackets.$bidx.ts | 5 +++-- app/features/api-public/routes/tournament.$id.teams.ts | 5 +++-- app/features/api-public/routes/tournament.$id.ts | 5 +++-- app/features/api-public/routes/user.$identifier.ts | 5 +++-- 5 files changed, 15 insertions(+), 10 deletions(-) diff --git a/app/features/api-public/routes/tournament-match.$id.ts b/app/features/api-public/routes/tournament-match.$id.ts index 9ca14a958..54af84911 100644 --- a/app/features/api-public/routes/tournament-match.$id.ts +++ b/app/features/api-public/routes/tournament-match.$id.ts @@ -1,4 +1,4 @@ -import type { LoaderFunctionArgs } from "@remix-run/node"; +import { json, type LoaderFunctionArgs } from "@remix-run/node"; import { z } from "zod"; import { db } from "~/db/sql"; import { notFoundIfFalsy, parseParams } from "~/utils/remix"; @@ -9,6 +9,7 @@ import { resolveMapList } from "~/features/tournament-bracket/core/mapList.serve import { requireBearerAuth } from "../api-public-utils.server"; import i18next from "~/modules/i18n/i18next.server"; import * as TournamentRepository from "~/features/tournament/TournamentRepository.server"; +import { cors } from "remix-utils/cors"; const paramsSchema = z.object({ id, @@ -150,5 +151,5 @@ export const loader = async ({ params, request }: LoaderFunctionArgs) => { mapList: await mapList(), }; - return result; + return await cors(request, json(result)); }; diff --git a/app/features/api-public/routes/tournament.$id.brackets.$bidx.ts b/app/features/api-public/routes/tournament.$id.brackets.$bidx.ts index e08558b3c..b18e7dd22 100644 --- a/app/features/api-public/routes/tournament.$id.brackets.$bidx.ts +++ b/app/features/api-public/routes/tournament.$id.brackets.$bidx.ts @@ -1,10 +1,11 @@ -import type { LoaderFunctionArgs } from "@remix-run/node"; +import { json, type LoaderFunctionArgs } from "@remix-run/node"; import { z } from "zod"; import { tournamentFromDB } from "~/features/tournament-bracket/core/Tournament.server"; import { notFoundIfFalsy, parseParams } from "~/utils/remix"; import { id } from "~/utils/zod"; import { requireBearerAuth } from "../api-public-utils.server"; import type { GetTournamentBracketResponse } from "../schema"; +import { cors } from "remix-utils/cors"; const paramsSchema = z.object({ id, @@ -41,5 +42,5 @@ export const loader = async ({ params, request }: LoaderFunctionArgs) => { }, }; - return result; + return await cors(request, json(result)); }; diff --git a/app/features/api-public/routes/tournament.$id.teams.ts b/app/features/api-public/routes/tournament.$id.teams.ts index 8c5973d8e..38f5e6f2a 100644 --- a/app/features/api-public/routes/tournament.$id.teams.ts +++ b/app/features/api-public/routes/tournament.$id.teams.ts @@ -1,4 +1,4 @@ -import type { LoaderFunctionArgs } from "@remix-run/node"; +import { json, type LoaderFunctionArgs } from "@remix-run/node"; import { z } from "zod"; import { db } from "~/db/sql"; import { parseParams } from "~/utils/remix"; @@ -8,6 +8,7 @@ import { databaseTimestampToDate } from "~/utils/dates"; import { jsonArrayFrom } from "kysely/helpers/sqlite"; import { requireBearerAuth } from "../api-public-utils.server"; import i18next from "~/modules/i18n/i18next.server"; +import { cors } from "remix-utils/cors"; const paramsSchema = z.object({ id, @@ -104,5 +105,5 @@ export const loader = async ({ params, request }: LoaderFunctionArgs) => { }; }); - return result; + return await cors(request, json(result)); }; diff --git a/app/features/api-public/routes/tournament.$id.ts b/app/features/api-public/routes/tournament.$id.ts index 5ada194ec..117e848d7 100644 --- a/app/features/api-public/routes/tournament.$id.ts +++ b/app/features/api-public/routes/tournament.$id.ts @@ -1,4 +1,4 @@ -import type { LoaderFunctionArgs } from "@remix-run/node"; +import { json, type LoaderFunctionArgs } from "@remix-run/node"; import { z } from "zod"; import { db } from "~/db/sql"; import { notFoundIfFalsy, parseParams } from "~/utils/remix"; @@ -8,6 +8,7 @@ import { databaseTimestampToDate } from "~/utils/dates"; import { HACKY_resolvePicture } from "~/features/tournament/tournament-utils"; import { jsonArrayFrom } from "kysely/helpers/sqlite"; import { requireBearerAuth } from "../api-public-utils.server"; +import { cors } from "remix-utils/cors"; const paramsSchema = z.object({ id, @@ -67,5 +68,5 @@ export const loader = async ({ params, request }: LoaderFunctionArgs) => { })), }; - return result; + return await cors(request, json(result)); }; diff --git a/app/features/api-public/routes/user.$identifier.ts b/app/features/api-public/routes/user.$identifier.ts index 516c6fff6..87a0dc607 100644 --- a/app/features/api-public/routes/user.$identifier.ts +++ b/app/features/api-public/routes/user.$identifier.ts @@ -1,4 +1,4 @@ -import type { LoaderFunctionArgs } from "@remix-run/node"; +import { json, type LoaderFunctionArgs } from "@remix-run/node"; import { z } from "zod"; import { db } from "~/db/sql"; import { safeNumberParse } from "~/utils/number"; @@ -8,6 +8,7 @@ import { jsonArrayFrom } from "kysely/helpers/sqlite"; import { i18next } from "~/modules/i18n/i18next.server"; ("~/modules/i18n"); import { requireBearerAuth } from "../api-public-utils.server"; +import { cors } from "remix-utils/cors"; const paramsSchema = z.object({ identifier: z.string(), @@ -140,5 +141,5 @@ export const loader = async ({ params, request }: LoaderFunctionArgs) => { // : null, }; - return result; + return await cors(request, json(result)); };