diff options
Diffstat (limited to 'src/http/tpl/unsubscribe.html')
-rw-r--r-- | src/http/tpl/unsubscribe.html | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/http/tpl/unsubscribe.html b/src/http/tpl/unsubscribe.html new file mode 100644 index 0000000..ad01735 --- /dev/null +++ b/src/http/tpl/unsubscribe.html @@ -0,0 +1,44 @@ +{{ define "body" }} + +<script async type="module" src="{{ StaticURL "api.js" }}"></script> + +<style> +#result.success { color: green; } +#result.fail { color: red; } +</style> + +<span id="result"></span> + +<script> + +(async () => { + + const resultSpan = document.getElementById("result"); + + try { + const urlParams = new URLSearchParams(window.location.search); + const unsubToken = urlParams.get('unsubToken'); + + if (!unsubToken) throw "No unsubscribe token provided"; + + const api = await import("{{ StaticURL "api.js" }}"); + + await api.call('/api/mailinglist/unsubscribe', { + body: { unsubToken }, + }); + + resultSpan.className = "success"; + resultSpan.innerHTML = "You have been unsubscribed! Please go on about your day."; + + } catch (e) { + resultSpan.className = "fail"; + resultSpan.innerHTML = e; + } + +})(); + +</script> + +{{ end }} + +{{ template "base.html" . }} |