Skip to content

Instantly share code, notes, and snippets.

@cwardzala
Last active June 15, 2016 13:14
Show Gist options
  • Save cwardzala/0d0fc3ffc5b97263f39f2a800a02109b to your computer and use it in GitHub Desktop.
Save cwardzala/0d0fc3ffc5b97263f39f2a800a02109b to your computer and use it in GitHub Desktop.
import json
import requests
import codecs
from pprint import pprint
import md5
import mandrill
test_key = 'test_key'
prod_key = 'prod_key'
mandrill_client = mandrill.Mandrill(test_key)
freeze_headers = {
'MrFreezeKey': 'freeze_key'
}
url = "http://mrfreeze-prod.findawayworld.com/v2.3/libraryweb/orgs_extended"
o_res = requests.get(url, headers=freeze_headers)
with codecs.open('auto_enroll.json', 'r') as data_file:
data = json.load(data_file)
def enrollOrg(org_id):
url = "http://mrfreeze-prod.findawayworld.com/v2.3/libraryweb/orgs_extended?where=%s" % json.dumps({"id": org_id})
data = {
"pif_enabled": True
}
# o_res = requests.put(url, data=json.dumps(data), headers=freeze_headers)
def enrollUser(email, start_date):
url = "http://mrfreeze-prod.findawayworld.com/v2.3/libraryweb/users_extended?where=%s" % json.dumps({"email": email.lower()})
data = {
"pif_contact": True,
"pif_start_date": start_date
}
# o_res = requests.put(url, data=json.dumps(data), headers=freeze_headers)
def addToDrip(email, start_date):
# call to MailChimp
apiKey = "mc_key"
listId = "0692176434"
mdS = md5.new(email.lower()).hexdigest()
url = "https://us7.api.mailchimp.com/3.0/lists/%s/members/%s" % (listId, mdS)
headers = {
'Content-Type': 'application/json'
}
json = {
'email_address': email.lower(),
'status': 'subscribed', # "subscribed","unsubscribed","cleaned","pending"
'merge_fields': {
'PIFDATE': start_date
}
}
options = {
'auth': ['findaway', apiKey]
}
# response = requests.put(url, headers=headers, data=json.dumps(json), options)
def sendWelcomeEmail(to, varz):
template_id = 'shop-pif-auto-enroll-welcome'
message = {
'to': to,
'merge_language': 'handlebars',
'merge_vars': varz,
'preserve_recipients': False
}
result = mandrill_client.messages.send_template(template_name=template_id, template_content=[], message=message)
return result
to_list = []
vars_list = []
for line in data:
pif_start_date = "2016-04-14"
enrollOrg(line['org_id'])
enrollUser(line['user_email'], pif_start_date)
if addToDrip(line['user_email'], pif_start_date).status_code == 200:
# add user to the Mandrill "to" list.
to_list.append({'email': line['user_email']})
# add user name to user's merge vars.
vars_list.append({
'rcpt': line['user_email'],
'vars': [{
'name': 'name',
'content': line['user_name']
}]
})
sendWelcomeEmail(to_list, vars_list)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment