diff options
| author | Adam Soltys <[email protected]> | 2022-10-26 10:41:11 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2022-10-26 10:41:13 -0700 |
| commit | d6199b5b2ce430d757b252cce57cbe6fbfa15059 (patch) | |
| tree | de87c7ea5b7a33d3c4b1b3c48aac53b27d96367e | |
| parent | 3d901bc14fe78293bf9fbf9fa804cb637b9a32e1 (diff) | |
| download | coinos-ui-d6199b5b2ce430d757b252cce57cbe6fbfa15059.tar.gz coinos-ui-d6199b5b2ce430d757b252cce57cbe6fbfa15059.zip | |
cache and filter osm locations fetch
| -rw-r--r-- | src/components/AppHeader.svelte | 2 | ||||
| -rw-r--r-- | src/routes/+layout.server.js | 12 | ||||
| -rw-r--r-- | src/routes/+page.server.js | 1 | ||||
| -rw-r--r-- | src/routes/locations/+server.js | 18 |
4 files changed, 21 insertions, 12 deletions
diff --git a/src/components/AppHeader.svelte b/src/components/AppHeader.svelte index fb57f27a..2d9c011f 100644 --- a/src/components/AppHeader.svelte +++ b/src/components/AppHeader.svelte @@ -16,7 +16,7 @@ { key: 'nav.profile', icon: 'profile', href: `/${user.username}` }, { key: 'nav.settings', icon: 'settings', href: `/${user.username}/settings` }, { key: 'nav.support', icon: 'support', href: `/${user.username}/support` }, - { key: 'nav.signOut', icon: 'logout', href: `/${user.username}/logout` } + { key: 'nav.signOut', icon: 'logout', href: `/logout` } ]; let showMenu = false; diff --git a/src/routes/+layout.server.js b/src/routes/+layout.server.js index 324632d4..6af13a06 100644 --- a/src/routes/+layout.server.js +++ b/src/routes/+layout.server.js @@ -35,15 +35,5 @@ export async function load({ cookies, locals, request, url, params }) { let rate = await get('/rate'); rates = await get('/rates'); - let locations = await fetch('https://api.btcmap.org/v2/elements?updated_since=2022-09-19') - .then((r) => r.text()) - .then((body) => { - try { - return JSON.parse(body); - } catch (e) { - throw new Error(body); - } - }); - - return { subject, user, token, rate, rates, locations }; + return { subject, user, token, rate, rates }; } diff --git a/src/routes/+page.server.js b/src/routes/+page.server.js new file mode 100644 index 00000000..cfc78363 --- /dev/null +++ b/src/routes/+page.server.js @@ -0,0 +1 @@ + export let load = async ({ fetch }) => (await fetch('/locations')).json(); diff --git a/src/routes/locations/+server.js b/src/routes/locations/+server.js new file mode 100644 index 00000000..48eb9fc6 --- /dev/null +++ b/src/routes/locations/+server.js @@ -0,0 +1,18 @@ +import { json } from '@sveltejs/kit'; + +export async function GET({ fetch, setHeaders }) { + let r = await fetch('https://api.btcmap.org/v2/elements?updated_since=2022-09-19'); + + let locations = await r.json(); + locations = locations.filter( + (l) => l['osm_json'].tags && l['osm_json'].tags['payment:coinos'] === 'yes' + ); + + let headers = { + 'cache-control': 'public, max-age=600' + }; + + setHeaders(headers); + + return json({ locations }); +} |
