From ef93da5b957dcfd75ac6c820ee35461399b58324 Mon Sep 17 00:00:00 2001 From: crupest Date: Wed, 19 Jul 2023 01:37:02 +0800 Subject: A lot prettier. --- docker/crupest-nginx/sites/www/src/todos.ts | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 docker/crupest-nginx/sites/www/src/todos.ts (limited to 'docker/crupest-nginx/sites/www/src/todos.ts') diff --git a/docker/crupest-nginx/sites/www/src/todos.ts b/docker/crupest-nginx/sites/www/src/todos.ts new file mode 100644 index 0000000..5e36875 --- /dev/null +++ b/docker/crupest-nginx/sites/www/src/todos.ts @@ -0,0 +1,29 @@ +export interface Todo { + status: string; + title: string; + closed: boolean; + color: string; +} + +export async function fetchTodos(): Promise { + console.log("Try to fetch TODOs from server."); + + if (process.env.NODE_ENV !== "production") { + console.log("YaY! We are developers. 🍻 Use mock TODOs. (After 2s)"); + // await new Promise((resolve) => setTimeout(resolve, 2000)); + return (await import("./mock-todos")).default; + } else { + const res = await fetch("/api/todos"); + const body: Todo[] = await res.json(); + + if (res.status !== 200) { + console.error( + `Failed to get TODOs. Status: ${res.status}. Body: ${body}` + ); + throw new Error( + "Failed to fetch TODOs. (Maybe due to rate limit. Please try later.)" + ); + } + return body; + } +} -- cgit v1.2.3