Still working on order and orders that are carts

This commit is contained in:
Scott Idem
2022-01-21 16:41:40 -05:00
parent afe44bac89
commit ab0b900721
5 changed files with 95 additions and 2 deletions

View File

@@ -314,6 +314,57 @@ def load_order_obj(
# ### END ### API Order Methods ### load_order_obj() ###
# ### BEGIN ### API Order Methods ### get_order_obj_cart_for_person_id_v3() ###
# Updated 2022-01-21
@logger_reset
def get_order_id_cart_for_person_id_v3(
person_id: int|str,
enabled: str = 'enabled', # enabled, disabled, all
limit: int = 5,
offset: int = 0,
by_alias: bool = True,
exclude_unset: bool = True,
model_as_dict: bool = False,
) -> None|bool|dict|list:
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if person_id := redis_lookup_id_random(record_id_random=person_id, table_name='person'): pass
else: return False # None, false bool
data = {}
data['person_id'] = person_id
sql_enabled, data['enable'] = sql_enable_part(table_name='order', enabled=enabled) # Reasonably safe return str and bool
sql_limit = sql_limit_offset_part(limit=limit, offset=offset) # Reasonably safe return str
sql = f"""
SELECT `order`.id AS 'order_id', `order`.id_random AS 'order_id_random'
FROM `order` AS `order`
WHERE
`order`.person_id = :person_id
AND `order`.status = 'open'
{sql_enabled}
ORDER BY `order`.created_on DESC, `order`.updated_on DESC
{sql_limit};
"""
log.debug(sql)
if order_rec_result := sql_select(data=data, sql=sql):
log.debug(order_rec_result)
if isinstance(order_rec_result, dict):
order_id_cart = order_rec_result.get('order_id')
log.info(f'Got Order ID {order_id_cart} cart for Person ID {person_id}')
return order_id_cart
elif isinstance(order_rec_result, list):
log.warning(f'Got multiple Orders for a cart for Person ID {person_id}. This should not happen.')
return False
else: # None or [] or False
log.debug(order_rec_result)
return order_rec_result
# ### END ### API Order Methods ### get_order_obj_cart_for_person_id_v3() ###
# ### BEGIN ### API Order Methods ### save_order_obj() ###
# @logger_reset
def save_order_obj(order_obj_new:Order_Base, repl_order_line_li:bool=False):