diff --git a/src/routes/r/[shortname]/+page.server.js b/src/routes/r/[shortname]/+page.server.js new file mode 100644 index 0000000..2957fd7 --- /dev/null +++ b/src/routes/r/[shortname]/+page.server.js @@ -0,0 +1,22 @@ +import { redirect } from '@sveltejs/kit'; +import { getFromCMS } from 'utils/utils.js'; + +const redirectQuery = `*[_type == "redirects"]{ shortname, url }`; + +export const load = async ({ params }) => { + /** @type {[{shortname: String, url: String}]} */ + let CMSresponse = await getFromCMS(redirectQuery); + + const { shortname } = params; + + CMSresponse.forEach(res => { + if(res.shortname == shortname) { + // if match + throw redirect(302, res.url); + } + }); + + return { + shortname: shortname, + } +}; diff --git a/src/routes/r/[shortname]/+page.svelte b/src/routes/r/[shortname]/+page.svelte new file mode 100644 index 0000000..0ed1b0e --- /dev/null +++ b/src/routes/r/[shortname]/+page.svelte @@ -0,0 +1,12 @@ + + + + Where am I? + + Oops! We don't have a page for "r/{data.shortname}". + + Please try again! +
Where am I?
+ Oops! We don't have a page for "r/{data.shortname}". +
"r/{data.shortname}"
Please try again!