Less likely to trigger checking the JP param.
This commit is contained in:
@@ -1244,13 +1244,13 @@ def sql_delete(
|
|||||||
# If success then return the ID number
|
# If success then return the ID number
|
||||||
# If not success and there is a table_name then check the database table passed
|
# If not success and there is a table_name then check the database table passed
|
||||||
# If found in database table then store in Redis and return the ID number
|
# If found in database table then store in Redis and return the ID number
|
||||||
# Updated 2023-11-15
|
# Updated 2024-10-08
|
||||||
@logger_reset
|
@logger_reset
|
||||||
def redis_lookup_id_random(
|
def redis_lookup_id_random(
|
||||||
record_id_random: int|str,
|
record_id_random: int|str,
|
||||||
table_name: str,
|
table_name: str,
|
||||||
check_int_id: bool = False,
|
check_int_id: bool = False,
|
||||||
log_lvl: int = logging.WARNING, # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
log_lvl: int = logging.INFO, # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
minutes: int = 1,
|
minutes: int = 1,
|
||||||
) -> str|int|bool|None:
|
) -> str|int|bool|None:
|
||||||
log.setLevel(log_lvl)
|
log.setLevel(log_lvl)
|
||||||
@@ -1306,21 +1306,20 @@ def redis_lookup_id_random(
|
|||||||
key_name = f'{table_name}:{record_id_random}'
|
key_name = f'{table_name}:{record_id_random}'
|
||||||
|
|
||||||
record_id = r.get(key_name)
|
record_id = r.get(key_name)
|
||||||
log.debug(f'Record ID found: {record_id}')
|
# log.debug(f'Record ID found: {record_id}')
|
||||||
|
|
||||||
# WARNING WARNING WARNING
|
# WARNING WARNING WARNING
|
||||||
# WARNING WARNING WARNING
|
# WARNING WARNING WARNING
|
||||||
# WARNING WARNING WARNING
|
# WARNING WARNING WARNING
|
||||||
log.info(f'Looking up ID in Redis is being partially bypassed. Key="{key_name}" value="{record_id}" TTL={r.ttl(key_name)} seconds')
|
# log.info(f'Looking up ID in Redis is being partially bypassed. Key="{key_name}" value="{record_id}" TTL={r.ttl(key_name)} seconds')
|
||||||
record_id = None # Uncomment this line to bypass the Redis lookup... trust?
|
# record_id = None # Uncomment this line to bypass the Redis lookup... trust?
|
||||||
# WARNING WARNING WARNING
|
# WARNING WARNING WARNING
|
||||||
# WARNING WARNING WARNING
|
# WARNING WARNING WARNING
|
||||||
# WARNING WARNING WARNING
|
# WARNING WARNING WARNING
|
||||||
|
|
||||||
if record_id:
|
if record_id:
|
||||||
# log.info('The record ID was found using the record_id_random value.')
|
|
||||||
r.setex(key_name, datetime.timedelta(minutes=1), value=record_id)
|
r.setex(key_name, datetime.timedelta(minutes=1), value=record_id)
|
||||||
log.info(f'Redis entry found. Key="{key_name}" value="{record_id}" TTL={r.ttl(key_name)} seconds')
|
log.info(f'Redis: Entry found for: Key="{key_name}" value="{record_id}" TTL={r.ttl(key_name)} seconds')
|
||||||
|
|
||||||
return int(record_id)
|
return int(record_id)
|
||||||
elif table_name:
|
elif table_name:
|
||||||
@@ -1332,10 +1331,10 @@ def redis_lookup_id_random(
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
if select_results := sql_select(sql=sql, data=data):
|
if select_results := sql_select(sql=sql, data=data):
|
||||||
log.debug(f'SQL SELECT result: {select_results}')
|
log.debug(f'SQL: SELECT result: {select_results}')
|
||||||
# log.debug(type(select_results))
|
# log.debug(type(select_results))
|
||||||
if isinstance(select_results, dict):
|
if isinstance(select_results, dict):
|
||||||
log.info(f"""Record ID random found: {str(select_results.get('id'))}""")
|
log.info(f"""SQL: Found ID Random for: {str(record_id_random)} = {str(select_results.get('id'))}""")
|
||||||
if record_id := select_results.get('id'):
|
if record_id := select_results.get('id'):
|
||||||
r.setex(key_name, datetime.timedelta(minutes=minutes), value=record_id)
|
r.setex(key_name, datetime.timedelta(minutes=minutes), value=record_id)
|
||||||
|
|
||||||
@@ -1344,11 +1343,11 @@ def redis_lookup_id_random(
|
|||||||
log.error('The SQL result was not what was expected. The ID field was not found.')
|
log.error('The SQL result was not what was expected. The ID field was not found.')
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
log.error(f'More than one record may have been found in the table "{table_name}". There may be a duplicate id_random value in this table.')
|
log.error(f'SQL: More than one record may have been found in the table "{table_name}". There may be a duplicate id_random value in this table.')
|
||||||
log.error(select_results)
|
log.error(select_results)
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
log.info(f'Record ID random "{record_id_random}" was not found in table "{table_name}". Returning None.')
|
log.warning(f'SQL: ID Random "{record_id_random}" was not found in table "{table_name}". Returning None.')
|
||||||
return None
|
return None
|
||||||
|
|
||||||
log.error('We should not be here. Something unexpected happened.')
|
log.error('We should not be here. Something unexpected happened.')
|
||||||
|
|||||||
@@ -367,7 +367,7 @@ def handle_get_obj_li(
|
|||||||
|
|
||||||
commons: Common_Route_Params = None,
|
commons: Common_Route_Params = None,
|
||||||
):
|
):
|
||||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
log.debug(locals())
|
log.debug(locals())
|
||||||
|
|
||||||
import urllib
|
import urllib
|
||||||
@@ -388,8 +388,9 @@ def handle_get_obj_li(
|
|||||||
or_like_dict_obj = None
|
or_like_dict_obj = None
|
||||||
|
|
||||||
jp_obj = None
|
jp_obj = None
|
||||||
if jp:
|
log.debug(jp)
|
||||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
if jp and jp != '%7B%7D': # NOTE: This is the URL encoded version of '{}'. -2024-10-08
|
||||||
|
# log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
log.debug( urllib.parse.unquote(jp) )
|
log.debug( urllib.parse.unquote(jp) )
|
||||||
try:
|
try:
|
||||||
jp_obj = json.loads(urllib.parse.unquote(jp))
|
jp_obj = json.loads(urllib.parse.unquote(jp))
|
||||||
@@ -414,8 +415,10 @@ def handle_get_obj_li(
|
|||||||
if jp_obj.get('and_in_li'): # NOTE: This is for the additional AND IN clauses in the WHERE statement
|
if jp_obj.get('and_in_li'): # NOTE: This is for the additional AND IN clauses in the WHERE statement
|
||||||
and_in_dict_li_obj = jp_obj['and_in_li']
|
and_in_dict_li_obj = jp_obj['and_in_li']
|
||||||
|
|
||||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
|
else:
|
||||||
|
log.debug('No jp_obj')
|
||||||
|
pass
|
||||||
|
|
||||||
if order_by_li:
|
if order_by_li:
|
||||||
order_by_li = json.loads(order_by_li)
|
order_by_li = json.loads(order_by_li)
|
||||||
|
|||||||
Reference in New Issue
Block a user