From 4b191a3cfdb0056ccf1264668bcb6ef4ece19a86 Mon Sep 17 00:00:00 2001 From: vikingowl Date: Sun, 10 May 2026 19:27:27 +0200 Subject: [PATCH] =?UTF-8?q?feat(web):=20remove=20legacy=20[state]=20routes?= =?UTF-8?q?=20=E2=80=94=20redirect=20now=20in=20hooks.server.ts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../routes/maerkte/[state]/+page.server.ts | 48 ------- web/src/routes/maerkte/[state]/+page.svelte | 122 ------------------ .../maerkte/[state]/[city]/+page.server.ts | 38 ------ .../maerkte/[state]/[city]/+page.svelte | 115 ----------------- 4 files changed, 323 deletions(-) delete mode 100644 web/src/routes/maerkte/[state]/+page.server.ts delete mode 100644 web/src/routes/maerkte/[state]/+page.svelte delete mode 100644 web/src/routes/maerkte/[state]/[city]/+page.server.ts delete mode 100644 web/src/routes/maerkte/[state]/[city]/+page.svelte diff --git a/web/src/routes/maerkte/[state]/+page.server.ts b/web/src/routes/maerkte/[state]/+page.server.ts deleted file mode 100644 index fc0daac..0000000 --- a/web/src/routes/maerkte/[state]/+page.server.ts +++ /dev/null @@ -1,48 +0,0 @@ -import type { PageServerLoad } from './$types.js'; -import { apiFetch } from '$lib/api/client.js'; -import type { MarketSummary } from '$lib/api/types.js'; -import { slugToState, stateToSlug, toSlug } from '$lib/utils/slug.js'; -import { error } from '@sveltejs/kit'; - -export interface CityInfo { - slug: string; - name: string; - count: number; -} - -export const load: PageServerLoad = async ({ params, fetch }) => { - const stateName = slugToState(params.state); - if (!stateName) { - error(404, { message: 'Bundesland nicht gefunden.' }); - } - - let allMarkets: MarketSummary[] = []; - try { - const res = await apiFetch('/markets?per_page=1000', { fetch }); - allMarkets = res.data; - } catch { - // Backend unreachable - } - - const markets = allMarkets.filter((m) => stateToSlug(m.state) === params.state); - - if (markets.length === 0) { - error(404, { message: `Keine Märkte in ${stateName} gefunden.` }); - } - - const countByCity = new Map(); - for (const m of markets) { - countByCity.set(m.city, (countByCity.get(m.city) ?? 0) + 1); - } - - const cities: CityInfo[] = Array.from(countByCity.entries()) - .map(([name, count]) => ({ slug: toSlug(name), name, count })) - .sort((a, b) => a.name.localeCompare(b.name, 'de')); - - return { - stateName, - stateSlug: params.state, - markets, - cities - }; -}; diff --git a/web/src/routes/maerkte/[state]/+page.svelte b/web/src/routes/maerkte/[state]/+page.svelte deleted file mode 100644 index 781dbfb..0000000 --- a/web/src/routes/maerkte/[state]/+page.svelte +++ /dev/null @@ -1,122 +0,0 @@ - - - - Mittelaltermärkte in {stateName} - Marktvogt - - - - - {@html jsonLdBreadcrumbHtml} - {@html jsonLdItemListHtml} - - -
- - -

- Mittelaltermärkte in {stateName} -

-

- {markets.length} - {markets.length === 1 ? 'Markt' : 'Märkte'} in {stateName} -

- - {#if cities.length > 1} -
-

- Städte -

-
- {#each cities as city (city.slug)} - - {city.name} ({city.count}) - - {/each} -
-
- {/if} - -
- {#each markets as market (market.id)} - - {/each} -
-
diff --git a/web/src/routes/maerkte/[state]/[city]/+page.server.ts b/web/src/routes/maerkte/[state]/[city]/+page.server.ts deleted file mode 100644 index 5867ac3..0000000 --- a/web/src/routes/maerkte/[state]/[city]/+page.server.ts +++ /dev/null @@ -1,38 +0,0 @@ -import type { PageServerLoad } from './$types.js'; -import { apiFetch } from '$lib/api/client.js'; -import type { MarketSummary } from '$lib/api/types.js'; -import { slugToState, stateToSlug, toSlug } from '$lib/utils/slug.js'; -import { error } from '@sveltejs/kit'; - -export const load: PageServerLoad = async ({ params, fetch }) => { - const stateName = slugToState(params.state); - if (!stateName) { - error(404, { message: 'Bundesland nicht gefunden.' }); - } - - let allMarkets: MarketSummary[] = []; - try { - const res = await apiFetch('/markets?per_page=1000', { fetch }); - allMarkets = res.data; - } catch { - // Backend unreachable - } - - const markets = allMarkets.filter( - (m) => stateToSlug(m.state) === params.state && toSlug(m.city) === params.city - ); - - if (markets.length === 0) { - error(404, { message: 'Keine Märkte in dieser Stadt gefunden.' }); - } - - const cityName = markets[0].city; - - return { - stateName, - stateSlug: params.state, - cityName, - citySlug: params.city, - markets - }; -}; diff --git a/web/src/routes/maerkte/[state]/[city]/+page.svelte b/web/src/routes/maerkte/[state]/[city]/+page.svelte deleted file mode 100644 index 27d6a92..0000000 --- a/web/src/routes/maerkte/[state]/[city]/+page.svelte +++ /dev/null @@ -1,115 +0,0 @@ - - - - Mittelaltermärkte in {cityName}, {stateName} - Marktvogt - - - - - {@html jsonLdBreadcrumbHtml} - {@html jsonLdItemListHtml} - - -
- - -

- Mittelaltermärkte in {cityName} -

-

- {markets.length} - {markets.length === 1 ? 'Markt' : 'Märkte'} in {cityName}, {stateName} -

- -
- {#each markets as market (market.id)} - - {/each} -
-