munch-ease-frontend/src/api/auth.ts

31 lines
961 B
TypeScript
Raw Normal View History

Squashed commit of the following: commit a94394866d9e957693c7380b846cfee98739b8be Author: jableader <jacobdunk@gmail.com> Date: Mon Oct 20 00:11:28 2025 +1100 Ran codegen commit affaa0e4a80edbb5185f06b3a252e1790e349ee3 Author: jableader <jacobdunk@gmail.com> Date: Mon Oct 20 00:09:36 2025 +1100 Moved shopping.ts into composable commit 83ced27a549784a35fa2715630d6fdca7f12f4aa Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 23:43:09 2025 +1100 Purchase fixed commit 2fff14016eedaeb773c0f8b4ee9ccf08a1027449 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 22:54:36 2025 +1100 typescript migration complete commit 17651bcc8b0f40ac1579563379c8fc45aba1997d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 22:38:22 2025 +1100 Removing redundant null checks and type checking commit 0cc3a508cd5c7d723eb76d665443b4d0fdad493f Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 22:30:52 2025 +1100 Moving date to sdk layer commit 35d1189009b27876dd167f353c04f217b7c2805e Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 21:42:47 2025 +1100 No components re-parse dates already decoded by the boundary. commit c4b82a31fad75bd5ec987847847076b537d35a7d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 21:09:03 2025 +1100 Update spec and types commit 55984bf7c9d51e76eaa6713a3ca86e9a73eb6b03 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 20:22:01 2025 +1100 Disallow casting entirely commit eb02dc6a7b52048281a87924765d9aab1303150f Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 19:24:57 2025 +1100 Replaced components[schemas] outside sdk commit 2f4c1bed56724e4f8a0d586921367604ce127a1a Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 19:06:38 2025 +1100 removed persons.ts commit ae966db8a330c9f521f3c3cb7417c4f201467661 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:56:27 2025 +1100 Remove casts from sdk commit 42c253021e504b45963834e56551ded55be377f1 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:38:05 2025 +1100 Remove *Like types commit b0a4e21f19005fd69c0e9e16edaa9c10b1ca8567 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:32:26 2025 +1100 Defined quantity construct commit bf4666b89e2d395bdd091ffb6ee66a9cfb866c6d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:27:55 2025 +1100 Moved shopping view-model mapping (DTO → UI groups/meals) into `useShopping` (`mapItemToUI`, `groupsFrom`, `mealsFrom`). - Refactored `CurrentShoppingListPage.vue` to consume composable helpers (less duplication, no local cast-heavy mapping). - Refactored `PurchasedShoppingListPage.vue` to consume composable helpers and return typed SDK result; removed casts. commit e7f84b453509a8fcffbb9923ec001f5be85e67e4 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:17:29 2025 +1100 Removing casts, any, unknown and runtime type checking commit 6346eef4aff4d64b04f7dfa837c5b988645c242c Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 17:42:14 2025 +1100 domain/decoders.ts: removed casts; `purchaseDate` and `quantity` now trust API shapes. commit 8b62eb9a9f2c0fe058d2dd37cc80071089379c34 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 17:36:50 2025 +1100 Plan alignment commit dd81fd454b8e14874930cfc44828abddffd50c41 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 17:10:11 2025 +1100 More cast removals commit 377d143ffc8596f46a3b32746d3710d99eb257cd Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:53:30 2025 +1100 Type tightening in sdk commit ce2577f22190b18a52ae0fa4238c6d1beb7e3bb7 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:24:51 2025 +1100 All mappers removed/neutralized commit 177205561a2d44aae2683e046960ef5fe8992255 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:20:34 2025 +1100 Replace ingredientnormalized with ingredient commit fc75b24977cc89d420dc768fb4dc4ade84ed32c2 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:16:03 2025 +1100 More type safety tweaks and changes commit c35cc2d3d58307290bbc2d5978baa48c1eda97b6 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 15:46:13 2025 +1100 Update vue-tsc commit 2cd429804ca34a42c83ea81a3ae68e2cfccb5e36 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 15:28:01 2025 +1100 Ongoing SDK changes to tighten datatypes commit e11847ae515eadf1bd33e88e154125fe361a5191 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:31:03 2025 +1100 Enforce template type checking commit 777b8dee7e9ef0807a2b2c039443920671fe9c2d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:28:52 2025 +1100 Boilerplate Collapse mappers to “decoders” and delete ad‑hoc view types commit 4169c69d59cc16a24298351c38a60b4d4845f0c9 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:25:04 2025 +1100 Plan updates commit de65164c91d9dc641ec86424bd4fe40f91bb4ada Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:16:37 2025 +1100 More camelCase changes commit 4121c2157511f706b4704c5d5f769034d9bce5a0 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:00:48 2025 +1100 Remove unused js shims and autoformat project commit d475565529bd0c12f06f85f0bcbf19c857176fa7 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 13:59:10 2025 +1100 camelCase conversions and api type propogation commit 7b3b633a9d21c74977d4de120138fff192faaa78 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 13:11:22 2025 +1100 Strategise ts improvements commit 9396e4928abcf9d8a74a656ad21913f95e8e3e41 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 13:06:19 2025 +1100 Linting errors commit 528fa3bc2f6c42de6de37d9593d2ed31630d0e81 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 12:59:21 2025 +1100 Recipe search pagination commit 4993c3e53f540e098f3275715c86754dee9392af Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 12:33:13 2025 +1100 Removed redundant nonnull check commit c03d0b582d0a8b17e675cdf9bdab09eac4091d44 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 12:29:57 2025 +1100 Persons api pagination commit 67008b4a94a90295ed811594ca0e7f37c80a8305 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 22:44:32 2025 +1100 ts pages starting to work commit 0144e7f70d19289007d6b035594786ce573cbc70 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 22:39:17 2025 +1100 More typescript fixes commit dc429f84b48ca5892c6043db81b89fa6431d872d Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:28:54 2025 +1100 5) API client and codegen guardrails — DONE (scripts) / PARTIAL (CI wiring) commit 36ba555d9a600ca8cca4c18571e0d96584243556 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:26:30 2025 +1100 Tighten composable and UI types (remove last anys) — DONE commit 97523a9ef6aa972497e62d63c6f666453bb7eefc Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:24:11 2025 +1100 Align OpenAPI params to remove residual casts, Strengthen MSW tests for the typed client commit 608f6b751cb982487e90560792aec33317981c60 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:14:11 2025 +1100 ts complete, rerun codegen commit ca28376ed7bcb4ff4c7669210ce6eebfd9cb6eaa Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:09:29 2025 +1100 Document All JS under `src/` is now removed; the source tree is TS-only. commit ff3338b108bbf094f987302a21f1779d8f23368f Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 17:59:49 2025 +1100 Ts tests commit ce4555a279c715f427f9d00c346561efd74705f8 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 17:56:18 2025 +1100 Completed Generate real OpenAPI types and wire them commit b7304aa7390f33a372acda46c593d6592aabf3f7 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 17:02:27 2025 +1100 DatePicker ts conversion commit cb6ebdba286d44dbaae522ee29d95aa3ccfb5dc1 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:56:38 2025 +1100 Removed js files commit 549eefd369499e0a1d35ff88a659c8aecd955a02 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:49:31 2025 +1100 - Utilities converted to TS: `src/dateformats.ts`, `src/units.ts`; imports updated accordingly. - Router converted to TS: `src/router/index.ts`; legacy `index.js` removed. commit 6f7731287f4166df5c02164ec4220e370c6d7a35 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:48:58 2025 +1100 alerts ts conversion commit 4b1baec85a74b75e94d2392fea3b5abee294089c Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:27:35 2025 +1100 use v1 api commit da11976b96d791935cb16c7b1fdb074a2c87f53c Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:18:17 2025 +1100 - Shopping pages converted to TS: `MyShoppingPage.vue`, `CurrentShoppingListPage.vue`, `PurchasedShoppingListPage.vue` (typed refs/computed; stable keys; wired to helpers). commit acf740380bf53386e12e108ba09a507141176733 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:08:22 2025 +1100 Shopping MyShoppingPage converted to TS with typed refs. commit 744d7e792d013f0ed04f11280f3351950925beee Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:05:19 2025 +1100 Shopping gets types commit 4e576dca94424383bdf753403d7764e22a28f377 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:57:50 2025 +1100 Error tests commit ac6ae41b840c30196a370a077e02953c63977908 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:56:20 2025 +1100 More datatypes commit d7ea6538b1af6144933a2603d330cb17e04809db Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:45:49 2025 +1100 spec updates commit 0d6cfc1328df8ab4a4baf8f31a7a4e1ea50fd850 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:44:34 2025 +1100 `codegen:check` warns when backend spec is newer than generated types commit 54bff353b8e7429961364803300b38bc70f963c2 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:42:24 2025 +1100 PersonList ts commit e5ffcdde7e9538525704581a82606261596d31f5 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:40:53 2025 +1100 MealCard ts commit 5432d8333c023b0c6e25c9a6ac31519c818e6a58 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:39:29 2025 +1100 ue CLI now serves/builds with TypeScript entry, ESLint configured to parse TS, use ts code commit aba3fd532550a90adeb957b4ddbb43798bcf9e5a Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:23:16 2025 +1100 composables typescript commit 28ba44cc951fddfe64c386e77a91c2f46060cfb8 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:19:09 2025 +1100 let the typescriptin begin commit 98e57e4d65cecdd1ed5ed3fbf6b1ebf46ae6af10 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:13:58 2025 +1100 Added typescript
2025-10-19 13:12:40 +00:00
import { api } from '@/api/client'
import type { Person } from '@/domain/types'
let cachedUser: Person | null = null
export async function currentUser(): Promise<Person | null> {
if (cachedUser) return cachedUser
try {
const res = await api.POST('/api/v1/auth/refresh', { params: { cookie: { user_id: 0 } } })
if (!res.response.ok) return null
cachedUser = res.data ?? null
} catch (_) {
cachedUser = null
}
return cachedUser
}
export async function login(username: string): Promise<Person> {
const res = await api.POST('/api/v1/auth/login', { body: { username } })
if (!res.response.ok) {
const err = res.error
throw (
(err instanceof Error && err) ||
(typeof err === 'string' ? new Error(err) : new Error(`${res.response.status} ${res.response.statusText || 'HTTP error'}`))
)
}
cachedUser = res.data ?? null
if (!cachedUser) throw new Error('Login failed: empty response')
return cachedUser
}