From ff989317c9e4bce6148096d6a8f508fefb22ed38 Mon Sep 17 00:00:00 2001 From: ihsangan Date: Tue, 15 Oct 2024 09:02:12 +0800 Subject: [PATCH] update routing --- src/routing.ts | 82 +++++++++++++++++--------------------------------- wrangler.toml | 6 ++-- 2 files changed, 32 insertions(+), 56 deletions(-) mode change 100755 => 100644 wrangler.toml diff --git a/src/routing.ts b/src/routing.ts index 00b729d..e251b45 100644 --- a/src/routing.ts +++ b/src/routing.ts @@ -1,6 +1,26 @@ import { getUrl, Result } from './utils'; import * as router from './router'; +type RouteHandler = (id: number | string, zone?: string | number) => Promise; + +const routeMap: Record = { + '/ag': router.ag, + '/aov': router.aov, + '/cod': router.cod, + '/ff': router.ff, + '/gi': router.gi, + '/hi': router.hi, + '/hsr': router.hsr, + '/la': router.la, + '/ml': router.ml, + '/pb': router.pb, + '/pgr': router.pgr, + '/sm': router.sm, + '/sus': router.sus, + '/valo': router.valo, + '/zzz': router.zzz +}; + export default async function callAPI(request: Request): Promise { const url = getUrl(request); const path = url.pathname; @@ -13,61 +33,15 @@ export default async function callAPI(request: Request): Promise { message: 'Bad request' }; } - try { - let result: Result; - switch (true) { - case path.includes('/ag'): - result = await router.ag(Number(id)); - break; - case path.includes('/aov'): - result = await router.aov(Number(id)); - break; - case path.includes('/cod'): - result = await router.cod(Number(id)); - break; - case path.includes('/ff'): - result = await router.ff(Number(id)); - break; - case path.includes('/gi'): - result = await router.gi(Number(id)); - break; - case path.includes('/hi'): - result = await router.hi(Number(id)); - break; - case path.includes('/hsr'): - result = await router.hsr(Number(id)); - break; - case path.includes('/la'): - result = await router.la(Number(id), zone); - break; - case path.includes('/ml'): - result = await router.ml(Number(id), Number(zone)); - break; - case path.includes('/pb'): - result = await router.pb(id); - break; - case path.includes('/pgr'): - result = await router.pgr(Number(id), zone); - break; - case path.includes('/sm'): - result = await router.sm(id); - break; - case path.includes('/sus'): - result = await router.sus(Number(id)); - break; - case path.includes('/valo'): - result = await router.valo(id); - break; - case path.includes('/zzz'): - result = await router.zzz(Number(id)); - break; - default: - result = { - success: false, - message: 'Bad request' - }; + const handler = Object.entries(routeMap).find(route => path.includes(route)); + if (!handler) { + return { + success: false, + message: 'Bad request' } - return result; + } + try { + return await handler(id, zone) } catch (error) { return { success: false, diff --git a/wrangler.toml b/wrangler.toml old mode 100755 new mode 100644 index af35c6e..8085591 --- a/wrangler.toml +++ b/wrangler.toml @@ -1,4 +1,6 @@ -name = "validator" +name = "validev" main = "./src/index.ts" workers_dev = true -compatibility_date = "2022-01-01" \ No newline at end of file +compatibility_date = "2022-01-01" +[observability] +enabled = true \ No newline at end of file