Skip to content

Instantly share code, notes, and snippets.

@bryceroney
Created December 2, 2015 05:55
Show Gist options
  • Save bryceroney/06f7d837d72dafdd9987 to your computer and use it in GitHub Desktop.
Save bryceroney/06f7d837d72dafdd9987 to your computer and use it in GitHub Desktop.
nb_hook_lambda.js
exports.handler = function( event, context ) {
var request = require('request');
var url = "https://beta.campaigncentral.org.au/api/Import/?m=eyJPSUQiOjM4NzAsIlMiOnsiTmFtZSI6IlByZWZpbGwiLCJNYXAiOnsiTGFzdE5hbWUiOiJRMSIsIkZpcnN0TmFtZSI6IlEyIiwiU3VidXJiIjoiUTQiLCJQb3N0Y29kZSI6IlEzIiwiSGFuZGxlIjoiUTUiLCJNb2JpbGUiOiJRNiJ9LCJJIjpbeyJUUEMiOiJRNyIsIkQiOiIiLCJUQUciOiJROCIsIkRBVCI6IiIsIkRVRSI6IiIsIlMiOiJROSIsIk1TIjoiUTEwIn1dLCJBY3Rpdml0aWVzIjpbeyJJZCI6MX0seyJJZCI6Mn0seyJJZCI6M30seyJJZCI6NH0seyJJZCI6NX0seyJJZCI6Nn0seyJJZCI6N30seyJJZCI6OH0seyJJZCI6OX0seyJJZCI6MTB9LHsiSWQiOjExfSx7IklkIjoxMn0seyJJZCI6MTN9LHsiSWQiOjI5fSx7IklkIjozMH0seyJJZCI6MzF9LHsiSWQiOjMyfSx7IklkIjozM30seyJJZCI6MzR9LHsiSWQiOjM1fSx7IklkIjozNn0seyJJZCI6Mzd9LHsiSWQiOjM4fSx7IklkIjozOX0seyJJZCI6NDB9LHsiSWQiOjQxfSx7IklkIjo0Mn0seyJJZCI6NDN9LHsiSWQiOjQ0fSx7IklkIjo0NX0seyJJZCI6NDZ9LHsiSWQiOjQ3fSx7IklkIjo0OH0seyJJZCI6NDl9LHsiSWQiOjUwfSx7IklkIjo1MX0seyJJZCI6NTJ9LHsiSWQiOjUzfSx7IklkIjo1NH0seyJJZCI6NTV9LHsiSWQiOjU2fSx7IklkIjo1N30seyJJZCI6NTh9XSwiSGFuZGxlUHJvdmlkZXIiOiJOQl9hbHAiLCJTdHJpY3QiOnRydWUsIkludGVudEFmdGVyTWF0Y2giOjh9LCJVc2VyTmFtZSI6ImJyeWNlLnJvbmV5In0%3d&k=k%2bhJhtWAlJWewIxASzdOoG%2fTtvXJVITdjt441dadhBA%3d"
// var url = "http://requestb.in/1j8dnb11"
stringStartsWith = function(string, prefix) {
return string.slice(0, prefix.length) == prefix;
}
tidy_tags = function(obj) {
if (stringStartsWith(obj, "petition-") || stringStartsWith(obj, "feedback-") || stringStartsWith(obj, "issue-") || stringStartsWith(obj, "volunteer-") || stringStartsWith(obj, "event-")) {
return true
} else {
return false
}
}
process_tags = function(array) {
tags = array.filter(tidy_tags)
response = tags.join("|")
return response
}
process_mobile = function(number) {
if (typeof number !== 'undefined' && number) {
if(number.length == 9) {
string = "0" + number
} else {
string = number
}
} else {
string = ''
}
return string;
}
person = event.payload.person
cc_json = {
phone: '',
Q2: person.first_name,
Q1: person.last_name,
Q3: person.primary_address.zip,
Q4: person.primary_address.city,
Q5: person.id,
Q6: process_mobile(person.mobile),
Q7: "Labor Digital",
Q8: process_tags(person.tags),
Q9: true,
Q10: true
}
options = {
url: url,
headers: {
'Content-Type': 'application/json'
},
method: "POST",
body: JSON.stringify(cc_json)
};
request.post(options, function(error, response, body) {
if(!error) {
context.done(body);
} else {
context.fail();
}
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment