chore(site_domain): flesh out TODO stubs in legacy lookup routes
Uncommented and completed access_key + referrer handling in
lookup_site_domain_fqdn() and the GET /site/domain/fqdn/{fqdn} route.
These routes are disabled in registry.py and not currently active.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -147,8 +147,9 @@ def get_site_domain_rec_list(
|
|||||||
# ### BEGIN ### API Site Domain Methods ### lookup_site_domain_fqdn() ###
|
# ### BEGIN ### API Site Domain Methods ### lookup_site_domain_fqdn() ###
|
||||||
def lookup_site_domain_fqdn(
|
def lookup_site_domain_fqdn(
|
||||||
fqdn: str,
|
fqdn: str,
|
||||||
# TODO: Accept access_key as an argument for validation (str|None)
|
# Accept access_key as an argument for validation (str|None)
|
||||||
# access_key: Optional[str] = None,
|
access_key: Optional[str] = None,
|
||||||
|
referrer: Optional[str] = None,
|
||||||
enabled: str = 'enabled', # enabled, disabled, all
|
enabled: str = 'enabled', # enabled, disabled, all
|
||||||
limit: int = 100,
|
limit: int = 100,
|
||||||
offset: int = 0,
|
offset: int = 0,
|
||||||
@@ -158,22 +159,37 @@ def lookup_site_domain_fqdn(
|
|||||||
|
|
||||||
data = {}
|
data = {}
|
||||||
data['fqdn'] = fqdn
|
data['fqdn'] = fqdn
|
||||||
# TODO: If access_key is provided, add it to the data dict for SQL parameterization
|
# If access_key is provided, add it to the data dict for SQL parameterization
|
||||||
# if access_key is not None:
|
data['domain_access_key'] = access_key
|
||||||
# data['access_key'] = access_key
|
if referrer:
|
||||||
|
data['required_referrer'] = referrer
|
||||||
|
|
||||||
sql_enabled, data['enable'] = sql_enable_part(table_name='site_domain', enabled=enabled) # Reasonably safe return str and bool
|
sql_enabled, data['enable'] = sql_enable_part(table_name='site_domain', enabled=enabled) # Reasonably safe return str and bool
|
||||||
sql_limit = sql_limit_offset_part(limit=limit, offset=offset) # Reasonably safe return str
|
sql_limit = sql_limit_offset_part(limit=limit, offset=offset) # Reasonably safe return str
|
||||||
|
|
||||||
# TODO: Add access_key to WHERE clause if provided, e.g.:
|
# Build access key / referrer SQL similar to router.lookup_fqdn behavior
|
||||||
# WHERE site_domain.fqdn = :fqdn AND (:access_key IS NULL OR site_domain.access_key = :access_key)
|
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
|
||||||
|
AND (site_domain.required_referrer IS NULL OR site_domain.required_referrer = '')
|
||||||
|
"""
|
||||||
|
else:
|
||||||
|
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 = '')
|
||||||
|
"""
|
||||||
|
|
||||||
sql = f"""
|
sql = f"""
|
||||||
SELECT `site_domain`.id AS 'site_domain_id', `site_domain`.id_random AS 'site_domain_id_random'
|
SELECT `site_domain`.id AS 'site_domain_id', `site_domain`.id_random AS 'site_domain_id_random'
|
||||||
FROM `v_site_domain` AS site_domain
|
FROM `v_site_domain` AS site_domain
|
||||||
WHERE
|
WHERE
|
||||||
site_domain.fqdn = :fqdn
|
site_domain.fqdn = :fqdn
|
||||||
-- TODO: Add access_key check here for stricter validation
|
{sql_access_key_referrer}
|
||||||
-- AND (:access_key IS NULL OR site_domain.access_key = :access_key)
|
|
||||||
{sql_enabled}
|
{sql_enabled}
|
||||||
ORDER BY `site_domain`.fqdn ASC, `site_domain`.access_key ASC, `site_domain`.required_referrer ASC, `site_domain`.created_on DESC, `site_domain`.updated_on DESC
|
ORDER BY `site_domain`.fqdn ASC, `site_domain`.access_key ASC, `site_domain`.required_referrer ASC, `site_domain`.created_on DESC, `site_domain`.updated_on DESC
|
||||||
{sql_limit};
|
{sql_limit};
|
||||||
|
|||||||
@@ -77,18 +77,20 @@ async def patch_site_domain_obj(
|
|||||||
@router.get('/site/domain/fqdn/{fqdn}', response_model=Resp_Body_Base)
|
@router.get('/site/domain/fqdn/{fqdn}', response_model=Resp_Body_Base)
|
||||||
async def lookup_site_domain_obj(
|
async def lookup_site_domain_obj(
|
||||||
fqdn: str,
|
fqdn: str,
|
||||||
# x_account_id: str = Header(...),
|
# x_account_id: str = Header(...),
|
||||||
# response: Response = Response,
|
# response: Response = Response,
|
||||||
|
access_key: Optional[str] = Query(None, min_length=4, max_length=50),
|
||||||
commons: Common_Route_Params_Min = Depends(common_route_params_min),
|
referrer: Optional[str] = Query(None, min_length=8, max_length=150),
|
||||||
|
commons: Common_Route_Params_Min = Depends(common_route_params_min),
|
||||||
):
|
):
|
||||||
log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
log.debug(locals())
|
log.debug(locals())
|
||||||
|
|
||||||
|
# Updated 2021-12-13
|
||||||
# Updated 2021-12-13
|
|
||||||
if site_domain_rec_list_result := lookup_site_domain_fqdn(
|
if site_domain_rec_list_result := lookup_site_domain_fqdn(
|
||||||
fqdn = fqdn,
|
fqdn = fqdn,
|
||||||
|
access_key = access_key,
|
||||||
|
referrer = referrer,
|
||||||
enabled = commons.enabled,
|
enabled = commons.enabled,
|
||||||
limit = commons.limit,
|
limit = commons.limit,
|
||||||
offset = commons.offset
|
offset = commons.offset
|
||||||
|
|||||||
Reference in New Issue
Block a user