From 02a8948ee481b10c3a501f2cca1f8419be12d8d7 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Mon, 7 Feb 2022 16:11:45 -0500 Subject: [PATCH] Work on site domain FQDN lookup with referrer. For some reason being passed as None. --- app/routers/site_domain.py | 63 +++++++++++++++++++++++++++++--------- 1 file changed, 49 insertions(+), 14 deletions(-) diff --git a/app/routers/site_domain.py b/app/routers/site_domain.py index b981e79..7e4a96a 100644 --- a/app/routers/site_domain.py +++ b/app/routers/site_domain.py @@ -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)