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(
|
async def lookup_site_domain_obj(
|
||||||
fqdn: str,
|
fqdn: str,
|
||||||
access_key: Optional[str] = Query(None, min_length=4, max_length=50),
|
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(...),
|
x_account_id: str = Header(...),
|
||||||
by_alias: bool = True,
|
by_alias: bool = True,
|
||||||
exclude_unset: bool = True,
|
exclude_unset: bool = True,
|
||||||
@@ -90,32 +91,60 @@ async def lookup_site_domain_obj(
|
|||||||
data = {}
|
data = {}
|
||||||
data['fqdn'] = fqdn
|
data['fqdn'] = fqdn
|
||||||
data['domain_access_key'] = access_key
|
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:
|
if access_key and referrer:
|
||||||
#sql_domain_access_key = 'AND site_domain.domain_access_key = :domain_access_key'
|
sql_access_key_referrer = """
|
||||||
|
AND site_domain.domain_access_key = :domain_access_key
|
||||||
sql_domain_access_key = """
|
AND site_domain.required_referrer = :required_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)
|
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:
|
else:
|
||||||
sql_domain_access_key = 'AND site_domain.domain_access_key IS NULL'
|
sql_access_key_referrer = """
|
||||||
#if referrer:
|
AND (site_domain.domain_access_key IS NULL OR site_domain.domain_access_key = '')
|
||||||
# sql_referrer = 'AND site_domain.required_referrer = :required_referrer'
|
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"""
|
sql = f"""
|
||||||
SELECT *, site_enable_from AS 'enable_from', site_enable_to AS 'enable_to'
|
SELECT *, site_enable_from AS 'enable_from', site_enable_to AS 'enable_to'
|
||||||
FROM `v_site_domain` AS site_domain
|
FROM `v_site_domain` AS site_domain
|
||||||
WHERE site_domain.fqdn = :fqdn
|
WHERE site_domain.fqdn = :fqdn
|
||||||
{sql_domain_access_key}
|
{sql_access_key_referrer}
|
||||||
;
|
;
|
||||||
"""
|
"""
|
||||||
log.debug(sql)
|
log.debug(sql)
|
||||||
|
|
||||||
# NOTE: This need to broken out into a methods function for site and or site_domain
|
# 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):
|
if site_domain_obj_result := sql_select(data=data, sql=sql):
|
||||||
|
log.info('')
|
||||||
if isinstance(site_domain_obj_result, dict):
|
if isinstance(site_domain_obj_result, dict):
|
||||||
|
log.info('Got a site domain result')
|
||||||
try:
|
try:
|
||||||
site_obj = Site_Base(**site_domain_obj_result).dict(by_alias=by_alias, exclude_unset=exclude_unset, exclude_none=exclude_none)
|
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)
|
log.debug(site_obj)
|
||||||
@@ -131,10 +160,16 @@ async def lookup_site_domain_obj(
|
|||||||
log.debug(site_domain_obj)
|
log.debug(site_domain_obj)
|
||||||
|
|
||||||
return mk_resp(data=site_domain_obj, response=response)
|
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:
|
else:
|
||||||
log.error(f'More than one site domain records were returned. This was unexpected and needs to be corrected. FQDN: {fqdn}')
|
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='More than one site domain was returned. This was unexpected and needs to be corrected.', response=response)
|
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:
|
else:
|
||||||
|
log.info('No site domain results')
|
||||||
log.debug(site_domain_obj_result)
|
log.debug(site_domain_obj_result)
|
||||||
return mk_resp(data=False, status_code=404, response=response)
|
return mk_resp(data=False, status_code=404, response=response)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user