Updates for Cvent and IDAA custom status field
This commit is contained in:
@@ -474,6 +474,7 @@ def create_update_aether_person(
|
||||
# Important variables used more than once.
|
||||
person_external_id = None
|
||||
status = None
|
||||
log.debug(cvent_contact_obj.get('customFields'))
|
||||
if custom_field_list := cvent_contact_obj.get('customFields'): # List
|
||||
for custom_field in custom_field_list:
|
||||
# Get the External ID created by OSIT
|
||||
@@ -485,6 +486,11 @@ def create_update_aether_person(
|
||||
if custom_field.get('id') == 'e4e51781-e1ec-4f61-8329-b5d29bec6886':
|
||||
# person_data['external_id'] = custom_field.get('value')[0]
|
||||
status = custom_field.get('value')[0].lower()
|
||||
log.debug(f'Cvent Customer Custom Status: {status}')
|
||||
if status: pass
|
||||
else: status = 'unknown' # Will try to improve this guess in membership section below
|
||||
log.debug(status)
|
||||
|
||||
email = cvent_contact_obj.get('email')
|
||||
membership_person_id = None
|
||||
membership_person_type_id = None
|
||||
@@ -626,6 +632,17 @@ def create_update_aether_person(
|
||||
membership_person_type_data['last_end_on'] = datetime.datetime.strptime(cvent_contact_obj.get('membership').get('expiration'), '%Y-%m-%d')
|
||||
|
||||
current_datetime = datetime.datetime.now()
|
||||
log.debug(status)
|
||||
if status == 'unknown':
|
||||
log.info('Status is unknown. Going to try and make a guess...')
|
||||
if membership_person_type_data['first_start_on'] < current_datetime and membership_person_type_data['end_on'] >= current_datetime:
|
||||
person_data['status'] = 'approved' # approved and current
|
||||
elif membership_person_type_data['first_start_on'] < current_datetime and membership_person_type_data['end_on'] < current_datetime:
|
||||
person_data['status'] = 'approved' # approved but expired
|
||||
else:
|
||||
person_data['status'] = 'pending' # likely new?
|
||||
log.debug(person_data['status'])
|
||||
|
||||
if membership_person_type_data['end_on'] >= current_datetime:
|
||||
membership_person_type_data['lu_membership_type_status_id'] = 5 # 5 = active; expiration is > now
|
||||
else:
|
||||
|
||||
@@ -24,13 +24,21 @@ async def refresh_membership_status(
|
||||
log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(locals())
|
||||
|
||||
# sql = f"""
|
||||
# UPDATE user
|
||||
# INNER JOIN person ON user.id = person.user_id
|
||||
# INNER JOIN membership_person ON person.id = membership_person.person_id
|
||||
# SET user.email_verified = 1, user.enable = 1, user.enable_from = membership_person.start_on, user.enable_to = membership_person.end_on, user.verified = 1, user.group = 'pending_member'
|
||||
# WHERE user.account_id = 13 AND membership_person.end_on >= NOW()
|
||||
# AND (person.external_sys_id IS NULL OR person.external_sys_id = '');
|
||||
# """
|
||||
sql = f"""
|
||||
UPDATE user
|
||||
INNER JOIN person ON user.id = person.user_id
|
||||
INNER JOIN membership_person ON person.id = membership_person.person_id
|
||||
SET user.email_verified = 1, user.enable = 1, user.enable_from = membership_person.start_on, user.enable_to = membership_person.end_on, user.verified = 1, user.group = 'pending_member'
|
||||
WHERE user.account_id = 13 AND membership_person.end_on >= NOW()
|
||||
AND (person.external_sys_id IS NULL OR person.external_sys_id = '');
|
||||
AND person.status = 'pending';
|
||||
"""
|
||||
if user_update_result := sql_update(sql=sql):
|
||||
# Pull out IDs of existing person record
|
||||
@@ -44,7 +52,7 @@ async def refresh_membership_status(
|
||||
INNER JOIN membership_person ON person.id = membership_person.person_id
|
||||
SET user.email_verified = 1, user.enable = 1, user.enable_from = membership_person.start_on, user.enable_to = membership_person.end_on, user.verified = 1, user.group = 'current_member'
|
||||
WHERE user.account_id = 13 AND membership_person.end_on >= NOW()
|
||||
AND (person.external_sys_id IS NOT NULL AND person.external_sys_id != '');
|
||||
AND (person.status IS NULL OR person.status = 'approved');
|
||||
"""
|
||||
if user_update_result := sql_update(sql=sql):
|
||||
# Pull out IDs of existing person record
|
||||
|
||||
Reference in New Issue
Block a user