Modified the authenticate function for Impexium. It should be smarter now... It should only try to re-auth if something went wrong on another request.
This commit is contained in:
@@ -23,6 +23,8 @@ api = {}
|
|||||||
api['base_url'] = 'https://public.impexium.com/Api/v1' # or https://ishlt.mpxapi.com:443/api/v1 ??
|
api['base_url'] = 'https://public.impexium.com/Api/v1' # or https://ishlt.mpxapi.com:443/api/v1 ??
|
||||||
api['headers'] = { 'Content-Type': 'application/json;charset=UTF-8' }
|
api['headers'] = { 'Content-Type': 'application/json;charset=UTF-8' }
|
||||||
api['access_token'] = None
|
api['access_token'] = None
|
||||||
|
api['access_token_datetime'] = None # This is NOT generated by Impexium
|
||||||
|
api['app_user_token_datetime'] = None # This is NOT generated by Impexium
|
||||||
|
|
||||||
|
|
||||||
# ### BEGIN ### API External Impexium Methods ### get_access_token() ###
|
# ### BEGIN ### API External Impexium Methods ### get_access_token() ###
|
||||||
@@ -46,6 +48,7 @@ def get_access_token():
|
|||||||
log.debug(f'Headers: {resp.headers}')
|
log.debug(f'Headers: {resp.headers}')
|
||||||
# log.debug(f'Encoding: {resp.encoding}')
|
# log.debug(f'Encoding: {resp.encoding}')
|
||||||
if resp.status_code == 200 and resp.json():
|
if resp.status_code == 200 and resp.json():
|
||||||
|
log.info('Got access token. Setting API header and related...')
|
||||||
log.debug(f'JSON: {resp.json()}')
|
log.debug(f'JSON: {resp.json()}')
|
||||||
else:
|
else:
|
||||||
log.warning('No JSON data found')
|
log.warning('No JSON data found')
|
||||||
@@ -59,6 +62,9 @@ def get_access_token():
|
|||||||
api['headers']['AccessToken'] = response_data['accessToken']
|
api['headers']['AccessToken'] = response_data['accessToken']
|
||||||
api['auth_uri'] = response_data['uri']
|
api['auth_uri'] = response_data['uri']
|
||||||
|
|
||||||
|
api['access_token_datetime'] = datetime.datetime.utcnow() # This is NOT generated by Impexium
|
||||||
|
|
||||||
|
log.info('Finished setting API access token information.')
|
||||||
log.debug(api)
|
log.debug(api)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
@@ -72,7 +78,15 @@ def authenticate():
|
|||||||
log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
log.debug(locals())
|
log.debug(locals())
|
||||||
|
|
||||||
if api.get('access_token'): pass
|
if api.get('access_token') and api.get('app_user_token_datetime'):
|
||||||
|
log.info(f'Found API Access Token and timestamps: Access={api.get("access_token_datetime")}; App/User={api.get("app_user_token_datetime")}')
|
||||||
|
log.debug(api.get('access_token'))
|
||||||
|
# log.debug(api.get('access_token_datetime'))
|
||||||
|
# log.debug(api.get('app_user_token_datetime'))
|
||||||
|
return True
|
||||||
|
elif api.get('access_token'): # pass
|
||||||
|
log.info('Found API Access Token but no timestamp. Need to authenticate.')
|
||||||
|
log.debug(api.get('access_token'))
|
||||||
else:
|
else:
|
||||||
log.warning('Access token not found. Calling get_access_token()...')
|
log.warning('Access token not found. Calling get_access_token()...')
|
||||||
if result := get_access_token():
|
if result := get_access_token():
|
||||||
@@ -101,8 +115,9 @@ def authenticate():
|
|||||||
if resp.status_code == 200:
|
if resp.status_code == 200:
|
||||||
log.info('Got a result from request')
|
log.info('Got a result from request')
|
||||||
if resp.json():
|
if resp.json():
|
||||||
log.debug(f'JSON: {resp.json()}')
|
# log.debug(f'JSON: {resp.json()}')
|
||||||
response_data = resp.json()
|
response_data = resp.json()
|
||||||
|
log.debug(json.dumps(response_data, indent=2, default=str))
|
||||||
else:
|
else:
|
||||||
log.warning('No JSON data found')
|
log.warning('No JSON data found')
|
||||||
response_data = None
|
response_data = None
|
||||||
@@ -120,6 +135,8 @@ def authenticate():
|
|||||||
api['headers']['UserToken'] = response_data['userToken']
|
api['headers']['UserToken'] = response_data['userToken']
|
||||||
api['base_url'] = response_data['uri']
|
api['base_url'] = response_data['uri']
|
||||||
|
|
||||||
|
api['app_user_token_datetime'] = datetime.datetime.utcnow() # This is NOT generated by Impexium
|
||||||
|
|
||||||
log.debug(api)
|
log.debug(api)
|
||||||
|
|
||||||
return api
|
return api
|
||||||
@@ -262,10 +279,14 @@ def get_event_registrants(
|
|||||||
try_request = True
|
try_request = True
|
||||||
response_data = False
|
response_data = False
|
||||||
else:
|
else:
|
||||||
|
log.info('Not trying again')
|
||||||
try_request = False
|
try_request = False
|
||||||
try_page = False
|
try_page = False
|
||||||
impexium_event_registration_list = False
|
impexium_event_registration_list = False
|
||||||
|
|
||||||
|
log.warning('Something may have gone wrong. Setting the API app_user_token_datetime value to None to re-authenticate with Impexium on the next request.')
|
||||||
|
api['app_user_token_datetime'] = None # Resetting this just in case the App and or User token expired.
|
||||||
|
|
||||||
return impexium_event_registration_list
|
return impexium_event_registration_list
|
||||||
# ### END ### API Impexium Methods ### get_event_registrants() ###
|
# ### END ### API Impexium Methods ### get_event_registrants() ###
|
||||||
|
|
||||||
@@ -335,6 +356,9 @@ def get_individual_profile(
|
|||||||
try_request = False
|
try_request = False
|
||||||
impexium_event_registration_list = False
|
impexium_event_registration_list = False
|
||||||
|
|
||||||
|
log.warning('Something may have gone wrong. Setting the API app_user_token_datetime value to None to re-authenticate with Impexium on the next request.')
|
||||||
|
api['app_user_token_datetime'] = None # Resetting this just in case the App and or User token expired.
|
||||||
|
|
||||||
return impexium_individual_profile
|
return impexium_individual_profile
|
||||||
# ### END ### API External Impexium Methods ### get_individual_profile() ###
|
# ### END ### API External Impexium Methods ### get_individual_profile() ###
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user