parent
ec4aac24ab
commit
9c3ea8dd80
@ -0,0 +1,53 @@ |
||||
--- |
||||
layout: page |
||||
title: "" |
||||
nofollow: true |
||||
--- |
||||
|
||||
<style> |
||||
#result.success { color: green; } |
||||
#result.fail { color: red; } |
||||
</style> |
||||
|
||||
<span id="result"></span> |
||||
|
||||
<script> |
||||
|
||||
(async () => { |
||||
const resultSpan = document.getElementById("result"); |
||||
|
||||
function setErr(errStr) { |
||||
resultSpan.className = "fail"; |
||||
resultSpan.innerHTML = errStr; |
||||
} |
||||
|
||||
const urlParams = new URLSearchParams(window.location.search); |
||||
const subToken = urlParams.get('subToken'); |
||||
|
||||
if (!subToken) { |
||||
setErr("No subscription token provided"); |
||||
return; |
||||
} |
||||
|
||||
const finalizeForm = new FormData(); |
||||
finalizeForm.append('subToken', subToken); |
||||
|
||||
const finalizeReq = new Request('/api/mailinglist/finalize', { |
||||
method: 'POST', |
||||
body: finalizeForm, |
||||
}); |
||||
|
||||
const res = await fetch(finalizeReq) |
||||
.then(response => response.json()); |
||||
|
||||
if (res.error) { |
||||
setErr(res.error); |
||||
return; |
||||
} |
||||
|
||||
resultSpan.className = "success"; |
||||
resultSpan.innerHTML = "Your email subscription has been finalized! Please go on about your day."; |
||||
|
||||
})(); |
||||
|
||||
</script> |
@ -0,0 +1,54 @@ |
||||
--- |
||||
layout: page |
||||
title: "" |
||||
nofollow: true |
||||
--- |
||||
|
||||
<style> |
||||
#result.success { color: green; } |
||||
#result.fail { color: red; } |
||||
</style> |
||||
|
||||
<span id="result"></span> |
||||
|
||||
<script> |
||||
|
||||
(async () => { |
||||
const resultSpan = document.getElementById("result"); |
||||
|
||||
function setErr(errStr) { |
||||
resultSpan.className = "fail"; |
||||
resultSpan.innerHTML = errStr; |
||||
} |
||||
|
||||
const urlParams = new URLSearchParams(window.location.search); |
||||
const unsubToken = urlParams.get('unsubToken'); |
||||
|
||||
if (!unsubToken) { |
||||
setErr("No unsubscribe token provided"); |
||||
return; |
||||
} |
||||
|
||||
const unsubscribeForm = new FormData(); |
||||
unsubscribeForm.append('unsubToken', unsubToken); |
||||
|
||||
const unsubscribeReq = new Request('/api/mailinglist/unsubscribe', { |
||||
method: 'POST', |
||||
body: unsubscribeForm, |
||||
}); |
||||
|
||||
const res = await fetch(unsubscribeReq) |
||||
.then(response => response.json()); |
||||
|
||||
if (res.error) { |
||||
setErr(res.error); |
||||
return; |
||||
} |
||||
|
||||
resultSpan.className = "success"; |
||||
resultSpan.innerHTML = "You have been unsubscribed! Please go on about your day."; |
||||
|
||||
})(); |
||||
|
||||
</script> |
||||
|
Loading…
Reference in new issue