Add helper function to generate unsubscribe links
This is so that we can bulk-generate them to add to places like ChipChoc.
This commit is contained in:
parent
df2973722d
commit
702a303c28
1 changed files with 61 additions and 0 deletions
61
generate-unsubscribe-links.js
Normal file
61
generate-unsubscribe-links.js
Normal file
|
@ -0,0 +1,61 @@
|
|||
let {
|
||||
Pledge,
|
||||
makeSerialiser,
|
||||
} = require('./server')
|
||||
|
||||
function generateBackoutLink(email, unsubscribe=true) {
|
||||
let serialiser = makeSerialiser(email)
|
||||
|
||||
// format "unsubscribe" for serialisation
|
||||
let staySubscribed
|
||||
if (unsubscribe) {
|
||||
staySubscribed = 'no'
|
||||
} else {
|
||||
staySubscribed = 'yes'
|
||||
}
|
||||
|
||||
let verificationLink = `https://fund.snipettemag.com/back-out?email=${encodeURIComponent(email)}&key=${encodeURIComponent(serialiser.dumps(staySubscribed))}`
|
||||
|
||||
return verificationLink
|
||||
}
|
||||
|
||||
async function generateBackoutLinks(unsubscribe=true) {
|
||||
|
||||
// get list of pledges
|
||||
let pledges = (
|
||||
await Pledge
|
||||
.forge()
|
||||
.orderBy('created_at', 'DESC')
|
||||
.fetchAll()
|
||||
).models
|
||||
|
||||
let verificationLinks = []
|
||||
|
||||
// get the links
|
||||
pledges.forEach((pledge) => {
|
||||
verificationLinks.push(
|
||||
generateBackoutLink(pledge.get('email'), unsubscribe)
|
||||
)
|
||||
})
|
||||
|
||||
return verificationLinks
|
||||
}
|
||||
|
||||
if (!module.parent) {
|
||||
// figure out if we should unsubscribe
|
||||
let unsubscribe
|
||||
|
||||
if (process.argv[2] == 'yes' || process.argv[2] == 'stay-subscribed') {
|
||||
console.log('Backing out but staying subscribed')
|
||||
unsubscribe = false
|
||||
} else {
|
||||
console.log('Backing out and unsubscribing')
|
||||
unsubscribe = true
|
||||
}
|
||||
|
||||
// get the links and print 'em out
|
||||
generateBackoutLinks(unsubscribe).then((links) => {
|
||||
links.forEach(link => console.log(link))
|
||||
return
|
||||
})
|
||||
}
|
Loading…
Reference in a new issue