d = response.json()
return d
- def create_or_update_contact(self, email, key):
+ def create_or_update_contact(self, email, fields=None):
contact_id = self.get_contact_id(email)
if contact_id is None:
- contact_id = self.create_contact(email, key)
- else:
- self.update_contact(contact_id, key)
+ contact_id = self.create_contact(email, fields)
+ elif fields:
+ self.update_contact(contact_id, fields)
return contact_id
def get_contact_id(self, email):
if result:
return result[0]['id']
- def create_contact(self, email, key):
- result = self.request(
- 'Contact',
- 'create',
- {
- 'values': {
- 'WL.TPWL_key': key,
- },
- 'chain': {
- 'email': [
- 'Email',
- 'create',
- {
- 'values': {
- 'email': email,
- 'contact_id': '$id'
- }
+ def create_contact(self, email, fields):
+ data = {
+ 'values': {},
+ 'chain': {
+ 'email': [
+ 'Email',
+ 'create',
+ {
+ 'values': {
+ 'email': email,
+ 'contact_id': '$id'
}
- ]
- }
+ }
+ ]
}
- )
- return result[0]['id']
-
- def update_contact(self, contact_id, key):
+ }
+ if fields:
+ data['values'].update(fields)
+ result = self.request('Contact', 'create', data)
+ return result['values'][0]['id']
+
+ def update_phone(self, contact_id, phone):
+ if self.request('Phone', 'get', {'where': [['phone', "=", phone], ['contact_id', "=", contact_id]]})['count']:
+ return
+ self.request('Phone', 'create', {'values': {'phone': phone, 'contact_id': contact_id}})
+
+ def update_contact(self, contact_id, fields):
return self.request(
'Contact',
'update',
{
- 'values': {
- 'WL.TPWL_key': key,
- },
+ 'values': fields,
'where': [
['id', '=', contact_id]
]
if not self.enabled:
return
- contact_id = self.create_or_update_contact(email, tpwl_key)
+ fields = {'WL.TPWL_key': tpwl_key}
+ contact_id = self.create_or_update_contact(email, fields)
activity_id = self.get_activity_id(key)
if activity_id is None:
}
)
- #do we create a civicontribution?
+ def add_email_to_group(self, email, group_id):
+ contact_id = self.create_or_update_contact(email)
+ self.add_contact_to_group(contact_id, group_id)
+
+ def add_contact_to_group(self, contact_id, group_id):
+ self.request(
+ 'GroupContact',
+ 'create',
+ {
+ "values": {
+ "group_id": group_id,
+ "contact_id": contact_id,
+ }
+ }
+ )
civicrm = CiviCRM(