Work on site domain FQDN lookup with referrer. For some reason being passed as None.
This commit is contained in:
@@ -77,7 +77,8 @@ async def patch_site_domain_obj(
|
||||
async def lookup_site_domain_obj(
|
||||
fqdn: str,
|
||||
access_key: Optional[str] = Query(None, min_length=4, max_length=50),
|
||||
referrer: Optional[str] = None,
|
||||
referrer: Optional[str] = Query(None, min_length=8, max_length=150),
|
||||
referer: Optional[str] = Query(None, min_length=8, max_length=150),
|
||||
x_account_id: str = Header(...),
|
||||
by_alias: bool = True,
|
||||
exclude_unset: bool = True,
|
||||
@@ -90,32 +91,60 @@ async def lookup_site_domain_obj(
|
||||
data = {}
|
||||
data['fqdn'] = fqdn
|
||||
data['domain_access_key'] = access_key
|
||||
data['required_referrer'] = referrer
|
||||
if referrer: # This should work...
|
||||
data['required_referrer'] = referrer
|
||||
data['required_referer'] = referrer
|
||||
elif referer: # This should not be needed...
|
||||
referrer = referer
|
||||
data['required_referrer'] = referer
|
||||
data['required_refer'] = referer
|
||||
log.debug(data)
|
||||
|
||||
if access_key:
|
||||
#sql_domain_access_key = 'AND site_domain.domain_access_key = :domain_access_key'
|
||||
|
||||
sql_domain_access_key = """
|
||||
AND (site_domain.domain_access_key = :domain_access_key AND (site_domain.required_referrer IS NULL OR site_domain.required_referrer = ''))
|
||||
OR (site_domain.domain_access_key = :domain_access_key AND site_domain.required_referrer = :required_referrer)
|
||||
if access_key and referrer:
|
||||
sql_access_key_referrer = """
|
||||
AND site_domain.domain_access_key = :domain_access_key
|
||||
AND site_domain.required_referrer = :required_referrer
|
||||
"""
|
||||
elif access_key:
|
||||
sql_access_key_referrer = """
|
||||
AND site_domain.domain_access_key = :domain_access_key
|
||||
"""
|
||||
elif referrer:
|
||||
sql_access_key_referrer = """
|
||||
AND site_domain.required_referrer = :required_referrer
|
||||
"""
|
||||
else:
|
||||
sql_domain_access_key = 'AND site_domain.domain_access_key IS NULL'
|
||||
#if referrer:
|
||||
# sql_referrer = 'AND site_domain.required_referrer = :required_referrer'
|
||||
sql_access_key_referrer = """
|
||||
AND (site_domain.domain_access_key IS NULL OR site_domain.domain_access_key = '')
|
||||
AND (site_domain.required_referrer IS NULL OR site_domain.required_referrer = '')
|
||||
"""
|
||||
|
||||
# if access_key:
|
||||
# #sql_access_key_referrer = 'AND site_domain.domain_access_key = :domain_access_key'
|
||||
|
||||
# sql_access_key_referrer = """
|
||||
# AND (site_domain.domain_access_key = :domain_access_key AND (site_domain.required_referrer IS NULL OR site_domain.required_referrer = ''))
|
||||
# OR (site_domain.domain_access_key = :domain_access_key AND site_domain.required_referrer = :required_referrer)
|
||||
# """
|
||||
# else:
|
||||
# sql_access_key_referrer = 'AND site_domain.domain_access_key IS NULL'
|
||||
# #if referrer:
|
||||
# # sql_referrer = 'AND site_domain.required_referrer = :required_referrer'
|
||||
|
||||
sql = f"""
|
||||
SELECT *, site_enable_from AS 'enable_from', site_enable_to AS 'enable_to'
|
||||
FROM `v_site_domain` AS site_domain
|
||||
WHERE site_domain.fqdn = :fqdn
|
||||
{sql_domain_access_key}
|
||||
{sql_access_key_referrer}
|
||||
;
|
||||
"""
|
||||
log.debug(sql)
|
||||
|
||||
# NOTE: This need to broken out into a methods function for site and or site_domain
|
||||
if site_domain_obj_result := sql_select(data=data, sql=sql):
|
||||
log.info('')
|
||||
if isinstance(site_domain_obj_result, dict):
|
||||
log.info('Got a site domain result')
|
||||
try:
|
||||
site_obj = Site_Base(**site_domain_obj_result).dict(by_alias=by_alias, exclude_unset=exclude_unset, exclude_none=exclude_none)
|
||||
log.debug(site_obj)
|
||||
@@ -131,10 +160,16 @@ async def lookup_site_domain_obj(
|
||||
log.debug(site_domain_obj)
|
||||
|
||||
return mk_resp(data=site_domain_obj, response=response)
|
||||
elif isinstance(site_domain_obj_result, list):
|
||||
log.info('Got multiple site domain results')
|
||||
log.warning(f'More than one site domain records were returned. This was unexpected and needs to be corrected. FQDN: {fqdn}')
|
||||
site_domain_obj_li = site_domain_obj_result
|
||||
return mk_resp(data=site_domain_obj_li, response=response)
|
||||
else:
|
||||
log.error(f'More than one site domain records were returned. This was unexpected and needs to be corrected. FQDN: {fqdn}')
|
||||
return mk_resp(data=False, status_code=500, status_message='More than one site domain was returned. This was unexpected and needs to be corrected.', response=response)
|
||||
log.error(f'Unexpected results for the site domain records was returned. FQDN: {fqdn}; Access Key {access_key}; Referrer: {referrer}')
|
||||
return mk_resp(data=False, status_code=500, status_message=f'Unexpected results for the site domain records was returned. FQDN: {fqdn}; Access Key {access_key}; Referrer: {referrer}', response=response)
|
||||
else:
|
||||
log.info('No site domain results')
|
||||
log.debug(site_domain_obj_result)
|
||||
return mk_resp(data=False, status_code=404, response=response)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user