Work with Cvent API for IDAA members.
This commit is contained in:
@@ -20,12 +20,16 @@ from app.models.person_models import Person_Base
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# ### BEGIN ### API Cvent ### get_person_recent_changes() ###
|
||||
# ### BEGIN ### API Cvent ### process_recent_changes() ###
|
||||
# NOTE: Person in this case really means a Cvent Contact
|
||||
# Updated 2022-02-01
|
||||
@router.get('/person/recent_changes', response_model=Resp_Body_Base)
|
||||
async def get_person_recent_changes(
|
||||
from_datetime: datetime.datetime = datetime.datetime.utcnow() + datetime.timedelta(minutes=-90), # for Cvent "created" and "lastModified"
|
||||
to_datetime: datetime.datetime = None, # for Cvent "created" and "lastModified"
|
||||
@router.get('/person/process_recent_changes', response_model=Resp_Body_Base)
|
||||
async def process_recent_changes(
|
||||
from_created_on: datetime.datetime = datetime.datetime.utcnow() + datetime.timedelta(minutes=-60), # for Cvent "created"
|
||||
to_created_on: datetime.datetime = datetime.datetime.utcnow(), # for Cvent "created"
|
||||
from_updated_on: datetime.datetime = datetime.datetime.utcnow() + datetime.timedelta(minutes=-60), # for Cvent "lastModified"
|
||||
to_updated_on: datetime.datetime = None, # for Cvent "lastModified"
|
||||
# type: str = 'created', # created, updated, created_updated
|
||||
|
||||
commons: Common_Route_Params = Depends(common_route_params),
|
||||
):
|
||||
@@ -35,16 +39,18 @@ async def get_person_recent_changes(
|
||||
account_id = commons.x_account_id
|
||||
|
||||
if cvent_contact_list_result := get_recent_contact_list(
|
||||
created_on = from_datetime,
|
||||
updated_on = from_datetime
|
||||
from_created_on = from_created_on,
|
||||
to_created_on = to_created_on,
|
||||
from_updated_on = from_updated_on,
|
||||
to_updated_on = to_updated_on,
|
||||
):
|
||||
log.debug(cvent_contact_list_result)
|
||||
else:
|
||||
log.info(f'Something went wrong while trying to get recently created or updated person in Cvent. From Datetime: {from_datetime}')
|
||||
log.warning(f'Something went wrong while trying to get recently created or updated person in Cvent. From Datetime: {from_created_on}')
|
||||
return mk_resp(data=None, status_code=400, response=commons.response) # Bad Request
|
||||
|
||||
log.warning('Sleeping for 1 second to avoid Cvent rate limit...')
|
||||
time.sleep(1.25)
|
||||
log.warning('Sleeping for 1.1 second to avoid Cvent rate limit...')
|
||||
time.sleep(1.1)
|
||||
|
||||
cvent_contact_list = cvent_contact_list_result.get('data')
|
||||
for cvent_person_contact_obj in cvent_contact_list:
|
||||
@@ -61,11 +67,11 @@ async def get_person_recent_changes(
|
||||
else:
|
||||
log.info(f'Something went wrong while trying to create or update the person in Aether based on Cvent data. Cvent (Person) Contact ID: {cvent_person_contact_id}')
|
||||
|
||||
log.warning('Sleeping for 1 second to avoid Cvent rate limit...')
|
||||
time.sleep(.75)
|
||||
log.warning('Sleeping for .5 second to avoid Cvent rate limit...')
|
||||
time.sleep(.5)
|
||||
|
||||
return mk_resp(data=cvent_contact_list_result, status_message=f'Checked for recent changes in Cvent. Created/Updated {len(cvent_contact_list)} Cvent contacts', response=commons.response)
|
||||
# ### END ### API Cvent ### get_person_recent_changes() ###
|
||||
# ### END ### API Cvent ### process_recent_changes() ###
|
||||
|
||||
|
||||
# ### BEGIN ### API Cvent ### get_person() ###
|
||||
|
||||
Reference in New Issue
Block a user