Beispiel #1
0
    def consume(self, data):
        # type: (Mapping[str, Any]) -> None
        # This should clear out any invitation reminder emails
        clear_followup_emails_queue(data['email_address'])
        realm = Realm.objects.get(id=data['merge_fields']['REALM_ID'])
        if settings.MAILCHIMP_API_KEY and settings.PRODUCTION:
            endpoint = "https://%s.api.mailchimp.com/3.0/lists/%s/members" % \
                       (settings.MAILCHIMP_API_KEY.split('-')[1], settings.ZULIP_FRIENDS_LIST_ID)
            params = dict(data)
            params['list_id'] = settings.ZULIP_FRIENDS_LIST_ID
            params['status'] = 'subscribed'
            r = requests.post(endpoint,
                              auth=('apikey', settings.MAILCHIMP_API_KEY),
                              json=params,
                              timeout=10)
            if r.status_code == 400 and ujson.loads(
                    r.text)['title'] == 'Member Exists':
                logging.warning(
                    "Attempted to sign up already existing email to list: %s" %
                    (data['email_address'], ))
            else:
                r.raise_for_status()

        enqueue_welcome_emails(data['email_address'],
                               data['merge_fields']['NAME'], realm)
Beispiel #2
0
 def consume(self, data):
     merge_vars=data['merge_vars']
     # This should clear out any invitation reminder emails
     clear_followup_emails_queue(data["EMAIL"])
     if settings.MAILCHIMP_API_KEY and settings.PRODUCTION:
         try:
             self.pm.listSubscribe(
                     id=settings.ZULIP_FRIENDS_LIST_ID,
                     email_address=data['EMAIL'],
                     merge_vars=merge_vars,
                     double_optin=False,
                     send_welcome=False)
         except MailChimpException, e:
             if e.code == 214:
                 logging.warning("Attempted to sign up already existing email to list: %s" % (data['EMAIL'],))
             else:
                 raise e
Beispiel #3
0
    def consume(self, data):
        # type: (Mapping[str, Any]) -> None
        # This should clear out any invitation reminder emails
        clear_followup_emails_queue(data['email_address'])
        if settings.MAILCHIMP_API_KEY and settings.PRODUCTION:
            endpoint = "https://%s.api.mailchimp.com/3.0/lists/%s/members" % \
                       (settings.MAILCHIMP_API_KEY.split('-')[1], settings.ZULIP_FRIENDS_LIST_ID)
            params = dict(data)
            params['list_id'] = settings.ZULIP_FRIENDS_LIST_ID
            params['status'] = 'subscribed'
            r = requests.post(endpoint, auth=('apikey', settings.MAILCHIMP_API_KEY), json=params, timeout=10)
            if r.status_code == 400 and ujson.loads(r.text)['title'] == 'Member Exists':
                logging.warning("Attempted to sign up already existing email to list: %s" %
                                (data['email_address'],))
            else:
                r.raise_for_status()

        enqueue_welcome_emails(data['email_address'], data['merge_fields']['NAME'])