aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2022-10-26 10:41:11 -0700
committerAdam Soltys <[email protected]>2022-10-26 10:41:13 -0700
commitd6199b5b2ce430d757b252cce57cbe6fbfa15059 (patch)
treede87c7ea5b7a33d3c4b1b3c48aac53b27d96367e
parent3d901bc14fe78293bf9fbf9fa804cb637b9a32e1 (diff)
downloadcoinos-ui-d6199b5b2ce430d757b252cce57cbe6fbfa15059.tar.gz
coinos-ui-d6199b5b2ce430d757b252cce57cbe6fbfa15059.zip
cache and filter osm locations fetch
-rw-r--r--src/components/AppHeader.svelte2
-rw-r--r--src/routes/+layout.server.js12
-rw-r--r--src/routes/+page.server.js1
-rw-r--r--src/routes/locations/+server.js18
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 });
+}