From d06e2f87e276e47bc30e92ca4d353aa5c37401ec Mon Sep 17 00:00:00 2001 From: pagoru Date: Fri, 19 Jul 2024 11:04:54 +0200 Subject: [PATCH] fix #12 --- src/system/api.ts | 49 ++++++++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 22 deletions(-) diff --git a/src/system/api.ts b/src/system/api.ts index 6e6b678..9c55856 100644 --- a/src/system/api.ts +++ b/src/system/api.ts @@ -1,5 +1,5 @@ import { requestV1List } from "modules/api/v1/main.ts"; -import { appendCORSHeaders } from "shared/utils/main.ts"; +import { appendCORSHeaders, getCORSHeaders } from "shared/utils/main.ts"; import { System } from "system/main.ts"; export const api = () => { @@ -7,29 +7,34 @@ export const api = () => { for (const request of requestV1List) console.info(request.method, request.pathname); - Deno.serve( - { port: System.getConfig().port }, - async (request: Request) => { - try { - const { url, method } = request; - const parsedUrl = new URL(url); + Deno.serve({ port: System.getConfig().port }, async (request: Request) => { + try { + const { url, method } = request; + const parsedUrl = new URL(url); - const foundRequest = requestV1List.find( - ($request) => - $request.method === method && - $request.pathname === parsedUrl.pathname, - ); - if (foundRequest) { - const response = await foundRequest.func(request, parsedUrl); - appendCORSHeaders(response.headers); - return response; - } - } catch (e) { - console.log(e); + const foundRequests = requestV1List.filter( + ($request) => + // $request.method === method && + $request.pathname === parsedUrl.pathname, + ); + const foundMethodRequest = foundRequests.find( + ($request) => $request.method === method, + ); + if (foundMethodRequest) { + const response = await foundMethodRequest.func(request, parsedUrl); + appendCORSHeaders(response.headers); + return response; } - return new Response("404", { status: 404 }); - }, - ); + if (foundRequests.length) + return new Response("200", { + status: 200, + headers: getCORSHeaders(), + }); + } catch (e) { + console.log(e); + } + return new Response("404", { status: 404 }); + }); }; return {