From 8a794c8bad74e249cf48092702808e24620090aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Majdand=C5=BEi=C4=87?= Date: Thu, 13 Jun 2024 17:48:52 +0200 Subject: [PATCH] Refactor routing --- .../AggregatedFood/AggregatedFoodComp.svelte | 0 .../AggregatedFood/AggregatedFoodTable.svelte | 2 +- .../{ => Energy}/Food/EmptyFoodComp.svelte | 2 +- .../{ => Energy}/Food/FoodComp.svelte | 0 .../{ => Energy}/Food/FoodTable.svelte | 4 +- src/lib/components/Header.svelte | 100 ++++++++++-------- src/lib/database/food.ts | 2 +- src/lib/database/weight.ts | 77 ++++++++++++++ src/lib/router/Router.svelte | 21 ++-- src/lib/router/routes/Daily.svelte | 11 -- src/lib/router/routes/Energy/Daily.svelte | 11 ++ src/lib/router/routes/Energy/Energy.svelte | 11 ++ .../router/routes/{ => Energy}/Monthly.svelte | 6 +- .../router/routes/{ => Energy}/Weekly.svelte | 6 +- .../router/routes/{ => Energy}/Yearly.svelte | 6 +- src/lib/router/routes/Home.svelte | 11 -- src/lib/store/{ => energy}/dailyFoodStore.ts | 0 src/lib/store/{ => energy}/energyStore.ts | 0 src/lib/store/{ => energy}/foodStore.ts | 0 .../store/{ => energy}/lookbackDaysStore.ts | 0 .../store/{ => energy}/monthlyFoodStore.ts | 0 src/lib/store/{ => energy}/weeklyFoodStore.ts | 0 src/lib/store/{ => energy}/yearlyFoodStore.ts | 0 23 files changed, 179 insertions(+), 91 deletions(-) rename src/lib/components/{ => Energy}/AggregatedFood/AggregatedFoodComp.svelte (100%) rename src/lib/components/{ => Energy}/AggregatedFood/AggregatedFoodTable.svelte (96%) rename src/lib/components/{ => Energy}/Food/EmptyFoodComp.svelte (97%) rename src/lib/components/{ => Energy}/Food/FoodComp.svelte (100%) rename src/lib/components/{ => Energy}/Food/FoodTable.svelte (95%) create mode 100644 src/lib/database/weight.ts delete mode 100644 src/lib/router/routes/Daily.svelte create mode 100644 src/lib/router/routes/Energy/Daily.svelte create mode 100644 src/lib/router/routes/Energy/Energy.svelte rename src/lib/router/routes/{ => Energy}/Monthly.svelte (50%) rename src/lib/router/routes/{ => Energy}/Weekly.svelte (50%) rename src/lib/router/routes/{ => Energy}/Yearly.svelte (50%) delete mode 100644 src/lib/router/routes/Home.svelte rename src/lib/store/{ => energy}/dailyFoodStore.ts (100%) rename src/lib/store/{ => energy}/energyStore.ts (100%) rename src/lib/store/{ => energy}/foodStore.ts (100%) rename src/lib/store/{ => energy}/lookbackDaysStore.ts (100%) rename src/lib/store/{ => energy}/monthlyFoodStore.ts (100%) rename src/lib/store/{ => energy}/weeklyFoodStore.ts (100%) rename src/lib/store/{ => energy}/yearlyFoodStore.ts (100%) diff --git a/src/lib/components/AggregatedFood/AggregatedFoodComp.svelte b/src/lib/components/Energy/AggregatedFood/AggregatedFoodComp.svelte similarity index 100% rename from src/lib/components/AggregatedFood/AggregatedFoodComp.svelte rename to src/lib/components/Energy/AggregatedFood/AggregatedFoodComp.svelte diff --git a/src/lib/components/AggregatedFood/AggregatedFoodTable.svelte b/src/lib/components/Energy/AggregatedFood/AggregatedFoodTable.svelte similarity index 96% rename from src/lib/components/AggregatedFood/AggregatedFoodTable.svelte rename to src/lib/components/Energy/AggregatedFood/AggregatedFoodTable.svelte index af61443..2982aa3 100644 --- a/src/lib/components/AggregatedFood/AggregatedFoodTable.svelte +++ b/src/lib/components/Energy/AggregatedFood/AggregatedFoodTable.svelte @@ -1,7 +1,7 @@
+ data-tauri-drag-region> - +
+ + +
- - - diff --git a/src/lib/database/food.ts b/src/lib/database/food.ts index 4a8ce85..1a422a2 100644 --- a/src/lib/database/food.ts +++ b/src/lib/database/food.ts @@ -1,6 +1,6 @@ import { db } from '$lib/database' import type { Err } from '$lib/types' -import { lookbackDaysStore } from '$lib/store/lookbackDaysStore' +import { lookbackDaysStore } from '$lib/store/energy/lookbackDaysStore' import { get } from 'svelte/store' export type Food = { diff --git a/src/lib/database/weight.ts b/src/lib/database/weight.ts new file mode 100644 index 0000000..92dd140 --- /dev/null +++ b/src/lib/database/weight.ts @@ -0,0 +1,77 @@ +import { db } from '$lib/database' +import type { Err } from '$lib/types' +import { lookbackDaysStore } from '$lib/store/energy/lookbackDaysStore' +import { get } from 'svelte/store' + +export type Weight = { + rowid?: number, + date?: Date, + weight: string, +} +export type AggregatedWeight = { + period: string, + amount: number, +} + +const columns = ['rowid', 'date', 'weight'] +const aggColumns = ['period', 'amount'] + +const FoodService = { + async GetAll() { + return await db.select(` +select ${columns.join(', ')} +from food +order by date desc + `) + }, + async GetRecent() { + return await db.select(` +select ${columns.join(', ')} +from weightView +where date > datetime('now', "-${get(lookbackDaysStore)} days") +order by date DESC; +`) + }, + async Create(entry: Weight): Promise<[Weight, Err]> { + if (!entry.weight) return [entry, 'entry.weight is required'] + + const res = await db.execute(`insert into weight (weight) values ($1)`, [entry.weight]) + const rows = await db.select(`select ${columns.join(', ')} from weightView where rowid = $1`, [res.lastInsertId]) + + if (!rows) return [entry, 'no data found'] + if (rows.length == 0) return [entry, 'no data found'] + // Its not undefined mannnnnnnnnnnnnnnnnnnnnnnnnn............ + // @ts-ignore + return [rows[0], null] + }, + async GetDaily(): Promise<[AggregatedWeight[], Err]> { + const rows = await db.select(`select ${aggColumns.join(', ')} from weightDaily limit 100`) + return [rows, null] + }, + async GetWeekly(): Promise<[AggregatedWeight[], Err]> { + const rows = await db.select(`select ${aggColumns.join(', ')} from weightWeekly limit 100`) + return [rows, null] + }, + async GetMonthly(): Promise<[AggregatedWeight[], Err]> { + const rows = await db.select(`select ${aggColumns.join(', ')} from weightMonthly limit 100`) + return [rows, null] + }, + async GetYearly(): Promise<[AggregatedWeight[], Err]> { + const rows = await db.select(`select ${aggColumns.join(', ')} from weightYearly limit 100`) + return [rows, null] + }, + async Update(entry: Weight): Promise<[Weight, Err]> { + await db.execute(` +update weight set +weight = $1, +where rowid = $2 + `, [entry.weight, entry.rowid]) + const res = await db.select(`select ${columns.join(', ')} from weightView where rowid = $1`, [entry.rowid]) + if (!res) return [entry, 'no data found'] + if (res.length == 0) return [entry, 'no data found'] + if (!res[0]) return [entry, 'no data found'] + return [res[0], null] + } +} + +export { FoodService } diff --git a/src/lib/router/Router.svelte b/src/lib/router/Router.svelte index 33e20b4..729f652 100644 --- a/src/lib/router/Router.svelte +++ b/src/lib/router/Router.svelte @@ -1,18 +1,17 @@ diff --git a/src/lib/router/routes/Daily.svelte b/src/lib/router/routes/Daily.svelte deleted file mode 100644 index 21c8fd8..0000000 --- a/src/lib/router/routes/Daily.svelte +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/src/lib/router/routes/Energy/Daily.svelte b/src/lib/router/routes/Energy/Daily.svelte new file mode 100644 index 0000000..72966c6 --- /dev/null +++ b/src/lib/router/routes/Energy/Daily.svelte @@ -0,0 +1,11 @@ + + + diff --git a/src/lib/router/routes/Energy/Energy.svelte b/src/lib/router/routes/Energy/Energy.svelte new file mode 100644 index 0000000..17328b7 --- /dev/null +++ b/src/lib/router/routes/Energy/Energy.svelte @@ -0,0 +1,11 @@ + + + diff --git a/src/lib/router/routes/Monthly.svelte b/src/lib/router/routes/Energy/Monthly.svelte similarity index 50% rename from src/lib/router/routes/Monthly.svelte rename to src/lib/router/routes/Energy/Monthly.svelte index 774b43b..926b123 100644 --- a/src/lib/router/routes/Monthly.svelte +++ b/src/lib/router/routes/Energy/Monthly.svelte @@ -1,7 +1,7 @@