diff options
| author | Joe Carstairs <me@joeac.net> | 2024-12-12 08:26:53 +0000 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2024-12-12 08:26:53 +0000 |
| commit | 8a30bcbdf9264d235bf93da3df8e170cfde53d02 (patch) | |
| tree | 5f9b6fe956c72b89a89cc936ab86ec1bffc271f5 /gui/src/ajax/backend.ts | |
| parent | 51711fb42a44b452cdf1b4fd6a716d0251f23dda (diff) | |
Removes web GUI
Diffstat (limited to 'gui/src/ajax/backend.ts')
| -rw-r--r-- | gui/src/ajax/backend.ts | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/gui/src/ajax/backend.ts b/gui/src/ajax/backend.ts deleted file mode 100644 index 4a2462f..0000000 --- a/gui/src/ajax/backend.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { BalanceMap, newCategoryBalanceMapFromDto } from "../types/balanceMap"; -import { BudgetMap, newBudgetMapFromDto } from "../types/budgetMap"; -import { BudgetUpdate, newBudgetUpdateFromDto } from "../types/budgetUpdate"; -import { Category, newCategoryFromDto } from "../types/category"; - -const backendUrl = "http://localhost:8000"; - -function makeGetter<T>(params: FetcherMakerParams<T>): Getter<T> { - const parser = - "parser" in params - ? params.parser - : (dto: unknown[]) => <T>dto.map(params.elementParser); - - return async function () { - const response = await fetch(`${backendUrl}${params.path}`); - const dto = await response.json(); - - try { - return parser(dto); - } catch (err) { - console.error(`Error parsing DTO. ${err?.toString() ?? ""}`); - return null; - } - }; -} - -export const getAllBudgetUpdates: Getter<BudgetUpdate[]> = makeGetter< - BudgetUpdate[] ->({ - path: "/budget-update", - elementParser: newBudgetUpdateFromDto, -}); - -export const getAllCategories: Getter<Category[]> = async () => { - const balances = await getAllCategoryBalances(); - const budgets = await getAllCurrentCategoryBudgets(); - return makeGetter<Category[]>({ - path: "/category", - elementParser: newCategoryFromDto(balances, budgets), - })(); -}; - -export const getAllCategoryBalances: Getter<BalanceMap<Category>> = makeGetter< - BalanceMap<Category> ->({ - path: "/balance/category", - parser: newCategoryBalanceMapFromDto, -}); - -export const getAllCurrentCategoryBudgets: Getter<BudgetMap<Category>> = - makeGetter<BudgetMap<Category>>({ - path: "/budget/category?current", - parser: newBudgetMapFromDto, - }); - -type FetcherMakerParams<T> = { - path: string; -} & AnyParser<T>; - -type Parser<T> = { parser: (dto: unknown) => T | null }; -type ElementParser<T> = { elementParser: (dto: unknown) => T | null }; -type AnyParser<T> = T extends any[] - ? Parser<T> | ElementParser<T[number]> - : Parser<T>; - -type Getter<T> = () => Promise<T | null>; |
