Working on products and carts

This commit is contained in:
Scott Idem
2021-08-02 17:25:48 -04:00
parent c639c2b0a0
commit ac21a67c8a
4 changed files with 114 additions and 42 deletions

View File

@@ -789,7 +789,7 @@ def lookup_id_random(record_id:int, table_name:str):
# Remove the unneeded *_id_random key from the dict # Remove the unneeded *_id_random key from the dict
# This really needs to be simplified... Use a list of dicts instead. Can store as JSON in the DB. # This really needs to be simplified... Use a list of dicts instead. Can store as JSON in the DB.
def lookup_id_random_pop(obj_data:dict): def lookup_id_random_pop(obj_data:dict):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
if 'account_id_random' in obj_data: if 'account_id_random' in obj_data:

View File

@@ -4,13 +4,16 @@ import datetime
from typing import Dict, List, Optional, Set, Union from typing import Dict, List, Optional, Set, Union
from pydantic import BaseModel, EmailStr, Field, PrivateAttr, ValidationError, validator from pydantic import BaseModel, EmailStr, Field, PrivateAttr, ValidationError, validator
from app.lib_general import * from app.lib_general import log, logging
from app.db_sql import redis_lookup_id_random, sql_insert_or_update, sql_insert, sql_update, sql_select from app.db_sql import redis_lookup_id_random, sql_insert_or_update, sql_insert, sql_update, sql_select
from app.models.order_cart_models import Order_Cart_Base from app.models.order_cart_models import Order_Cart_Base
def update_order_cart_obj(order_cart_obj:Order_Cart_Base, repl_order_cart_line_li:bool=False): def update_order_cart_obj(
order_cart_obj: Order_Cart_Base,
repl_order_cart_line_list: bool = False,
) -> bool:
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
@@ -32,13 +35,13 @@ def update_order_cart_obj(order_cart_obj:Order_Cart_Base, repl_order_cart_line_l
if order_cart_id := redis_lookup_id_random(record_id_random=order_cart_id_random, table_name='order_cart'): pass if order_cart_id := redis_lookup_id_random(record_id_random=order_cart_id_random, table_name='order_cart'): pass
else: return False else: return False
#log.setLevel(logging.DEBUG) # log.setLevel(logging.DEBUG)
log.info('Loop through lines to update and calculate totals') log.info('Loop through lines to update and calculate totals')
# Calculate totals # Calculate totals
order_cart_total_amount:int = 0 order_cart_total_amount:int = 0
order_cart_total_quantity:int = 0 order_cart_total_quantity:int = 0
for order_cart_line_obj in order_cart_obj.order_cart_line_li: for order_cart_line_obj in order_cart_obj.order_cart_line_list:
log.debug(order_cart_line_obj) log.debug(order_cart_line_obj)
order_cart_line_obj.order_cart_id = order_cart_id order_cart_line_obj.order_cart_id = order_cart_id
@@ -46,38 +49,62 @@ def update_order_cart_obj(order_cart_obj:Order_Cart_Base, repl_order_cart_line_l
order_cart_line_obj_data = order_cart_line_obj.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'product_type_id', 'product_type', 'created_on', 'updated_on'}) order_cart_line_obj_data = order_cart_line_obj.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'product_type_id', 'product_type', 'created_on', 'updated_on'})
#log.setLevel(logging.DEBUG) # log.setLevel(logging.DEBUG)
log.debug(order_cart_line_obj_data) log.debug(order_cart_line_obj_data)
data = {} data = {}
data['order_cart_id_random'] = order_cart_id_random data['order_cart_id'] = order_cart_id
data['product_id_random'] = order_cart_line_obj.product_id_random data['product_id'] = order_cart_line_obj.product_id
sql_select_result = sql_select(table_name='order_cart_line', data=data, rm_id_random=True) sql_select_result = sql_select(table_name='order_cart_line', data=data, rm_id_random=True)
#log.setLevel(logging.DEBUG) # log.setLevel(logging.DEBUG)
log.debug(sql_select_result) log.debug(sql_select_result)
if sql_select_result: if sql_select_result:
# log.setLevel(logging.DEBUG)
log.info('A matching order cart line was found. Update...') log.info('A matching order cart line was found. Update...')
if order_cart_line_obj_up_result := sql_update(data=order_cart_line_obj_data, table_name='order_cart_line', record_id=sql_select_result.get('id'), rm_id_random=True, id_random_length=8): pass if order_cart_line_obj_up_result := sql_update(
data = order_cart_line_obj_data,
table_name = 'order_cart_line',
record_id = sql_select_result.get('id'),
rm_id_random = True,
id_random_length = 8,
): pass
else: else:
log.error('Something went wrong while trying to update an order cart line record.') log.error('Something went wrong while trying to update an order cart line record.')
return False return False
else: else:
# log.setLevel(logging.DEBUG)
log.info('A matching order cart line was not found. Insert...') log.info('A matching order cart line was not found. Insert...')
if order_cart_line_obj_in_result := sql_insert(data=order_cart_line_obj_data, table_name='order_cart_line', rm_id_random=True, id_random_length=8): pass if order_cart_line_obj_in_result := sql_insert(data=order_cart_line_obj_data, table_name='order_cart_line', rm_id_random=True, id_random_length=8): pass
else: else:
log.error('Something went wrong while trying to insert an order cart line record.') log.error('Something went wrong while trying to insert an order cart line record.')
return False return False
order_cart_total_amount += order_cart_line_obj.quantity * order_cart_line_obj.amount # order_cart_total_amount += order_cart_line_obj.quantity * order_cart_line_obj.amount
order_cart_total_quantity += order_cart_line_obj.quantity # order_cart_total_quantity += order_cart_line_obj.quantity
order_cart_line_data = {}
order_cart_line_data['order_cart_id'] = order_cart_id
if order_cart_line_sql_select_result := sql_select(table_name='order_cart_line', data=order_cart_line_data, rm_id_random=True):
# log.setLevel(logging.DEBUG)
log.debug(sql_select_result)
for order_cart_line_rec in order_cart_line_sql_select_result:
log.debug(order_cart_line_rec)
quantity = order_cart_line_rec.get('quantity', 0)
amount = order_cart_line_rec.get('amount', 0)
order_cart_total_amount += quantity * amount
order_cart_total_quantity += quantity
order_cart_obj_new = {} order_cart_obj_new = {}
order_cart_obj_new['id_random'] = order_cart_id_random order_cart_obj_new['id'] = order_cart_id
order_cart_obj_new['account_id_random'] = order_cart_obj.account_id_random order_cart_obj_new['account_id_random'] = order_cart_obj.account_id_random
order_cart_obj_new['person_id_random'] = order_cart_obj.person_id_random order_cart_obj_new['person_id_random'] = order_cart_obj.person_id_random
order_cart_obj_new['user_id_random'] = order_cart_obj.person_id_random order_cart_obj_new['user_id_random'] = order_cart_obj.user_id_random
order_cart_obj_new['order_id_random'] = order_cart_obj.order_id_random order_cart_obj_new['order_id_random'] = order_cart_obj.order_id_random
@@ -95,7 +122,12 @@ def update_order_cart_obj(order_cart_obj:Order_Cart_Base, repl_order_cart_line_l
# ### BEGIN ### API Order Cart Methods ### load_order_cart_obj() ### # ### BEGIN ### API Order Cart Methods ### load_order_cart_obj() ###
def load_order_cart_obj(order_cart_id:int|str, inc_order_cart_line_li:bool=False, inc_order_cart_cfg:bool=False) -> Order_Cart_Base|dict|bool: # Update 2021-08-02 (partially)
def load_order_cart_obj(
order_cart_id: int|str,
inc_order_cart_line_list: bool = False,
inc_order_cart_cfg: bool = False,
) -> Order_Cart_Base|dict|bool:
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
@@ -106,15 +138,17 @@ def load_order_cart_obj(order_cart_id:int|str, inc_order_cart_line_li:bool=False
#log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL #log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(order_cart_rec) log.debug(order_cart_rec)
if inc_order_cart_line_li: if inc_order_cart_line_list:
order_cart_line_data = {} order_cart_line_data = {}
order_cart_line_data['order_cart_id'] = order_cart_id order_cart_line_data['order_cart_id'] = order_cart_id
if order_cart_line_rec_li := sql_select(table_name='v_order_cart_line', data=order_cart_line_data, as_list=True): if order_cart_line_rec_li := sql_select(table_name='v_order_cart_line', data=order_cart_line_data, as_list=True):
order_cart_rec['order_cart_line_li'] = order_cart_line_rec_li order_cart_rec['order_cart_line_list'] = order_cart_line_rec_li
else: order_cart_rec['order_cart_line_list'] = []
if inc_order_cart_cfg: if inc_order_cart_cfg:
if order_cart_cfg_rec := sql_select(table_name='v_account_cfg_detail', field_name='account_id', field_value=order_cart_rec.get('account_id', None)): if order_cart_cfg_rec := sql_select(table_name='v_account_cfg_detail', field_name='account_id', field_value=order_cart_rec.get('account_id', None)):
order_cart_rec['cfg'] = order_cart_cfg_rec order_cart_rec['cfg'] = order_cart_cfg_rec
else: order_cart_rec['cfg'] = None
log.debug(order_cart_rec) log.debug(order_cart_rec)
else: else:
@@ -169,7 +203,7 @@ def old_save_order_cart_obj(order_cart_obj_new=None):
# Loop through the line list that was sent and compare with what was pulled from the DB # Loop through the line list that was sent and compare with what was pulled from the DB
# Only insert if a product ID does not match # Only insert if a product ID does not match
# Only update if a product ID does match # Only update if a product ID does match
for order_cart_line_obj_new in order_cart_obj_new.order_cart_line_li: for order_cart_line_obj_new in order_cart_obj_new.order_cart_line_list:
#log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL #log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
if not any(order_cart_line_obj_curr.product_id_random == order_cart_line_obj_new.product_id_random for order_cart_line_obj_curr in order_cart_line_obj_li_curr): if not any(order_cart_line_obj_curr.product_id_random == order_cart_line_obj_new.product_id_random for order_cart_line_obj_curr in order_cart_line_obj_li_curr):
# Need to append to current list # Need to append to current list
@@ -188,7 +222,7 @@ def old_save_order_cart_obj(order_cart_obj_new=None):
log.info(f'Not a match: {order_cart_line_obj_curr.product_id_random}') log.info(f'Not a match: {order_cart_line_obj_curr.product_id_random}')
# Save merged current and new list to the new order cart object # Save merged current and new list to the new order cart object
order_cart_obj_new.order_cart_line_li = order_cart_line_obj_li_curr order_cart_obj_new.order_cart_line_list = order_cart_line_obj_li_curr
log.debug(order_cart_obj_new) log.debug(order_cart_obj_new)
# Final loop through to get the new order totals # Final loop through to get the new order totals
@@ -202,8 +236,8 @@ def old_save_order_cart_obj(order_cart_obj_new=None):
order_cart_obj_new.total_amount = order_cart_total_amount order_cart_obj_new.total_amount = order_cart_total_amount
order_cart_obj_new.total_quantity = order_cart_total_quantity order_cart_obj_new.total_quantity = order_cart_total_quantity
log.debug(order_cart_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'order_cart_id_random', 'order_cart_line_li', 'cfg', 'created_on', 'updated_on'})) log.debug(order_cart_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'order_cart_id_random', 'order_cart_line_list', 'cfg', 'created_on', 'updated_on'}))
order_cart_obj_data = order_cart_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'order_cart_id_random', 'order_cart_line_li', 'cfg', 'created_on', 'updated_on'}) order_cart_obj_data = order_cart_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'order_cart_id_random', 'order_cart_line_list', 'cfg', 'created_on', 'updated_on'})
# SQL INSERT or UPDATE the order_cart record # SQL INSERT or UPDATE the order_cart record
log.info('SQL INSERT or UPDATE the order_cart record') log.info('SQL INSERT or UPDATE the order_cart record')
@@ -222,7 +256,7 @@ def old_save_order_cart_obj(order_cart_obj_new=None):
# Loop through the order_cart_line list to SQL INSERT or UPDATE the records # Loop through the order_cart_line list to SQL INSERT or UPDATE the records
log.info('Loop through the order_cart_line list to SQL INSERT or UPDATE the records') log.info('Loop through the order_cart_line list to SQL INSERT or UPDATE the records')
for order_cart_line_obj in order_cart_obj_new.order_cart_line_li: for order_cart_line_obj in order_cart_obj_new.order_cart_line_list:
log.debug(f"--- {order_cart_line_obj}") log.debug(f"--- {order_cart_line_obj}")
log.debug(order_cart_line_obj.dict(by_alias=False, exclude_defaults=False, exclude_unset=False, exclude={})) log.debug(order_cart_line_obj.dict(by_alias=False, exclude_defaults=False, exclude_unset=False, exclude={}))
@@ -239,7 +273,7 @@ def old_save_order_cart_obj(order_cart_obj_new=None):
# IS THIS STILL NEEDED? # IS THIS STILL NEEDED?
# ### BEGIN ### API Order Cart Model ### get_order_cart_obj() ### # ### BEGIN ### API Order Cart Model ### get_order_cart_obj() ###
def old_get_order_cart_obj(order_cart_id=None, inc_order_cart_line_li=None, inc_order_cart_cfg=None): def old_get_order_cart_obj(order_cart_id=None, inc_order_cart_line_list=None, inc_order_cart_cfg=None):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
@@ -251,11 +285,11 @@ def old_get_order_cart_obj(order_cart_id=None, inc_order_cart_line_li=None, inc_
#log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL #log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(order_cart_rec) log.debug(order_cart_rec)
if inc_order_cart_line_li: if inc_order_cart_line_list:
order_cart_line_data = {} order_cart_line_data = {}
order_cart_line_data['order_cart_id'] = order_cart_id order_cart_line_data['order_cart_id'] = order_cart_id
if order_cart_line_rec_li := sql_select(table_name='v_order_cart_line', data=order_cart_line_data, as_list=True): if order_cart_line_rec_li := sql_select(table_name='v_order_cart_line', data=order_cart_line_data, as_list=True):
order_cart_rec['order_cart_line_li'] = order_cart_line_rec_li order_cart_rec['order_cart_line_list'] = order_cart_line_rec_li
if inc_order_cart_cfg: if inc_order_cart_cfg:
if order_cart_cfg_rec := sql_select(table_name='v_account_cfg_detail', field_name='account_id', field_value=order_cart_rec.get('account_id', None)): if order_cart_cfg_rec := sql_select(table_name='v_account_cfg_detail', field_name='account_id', field_value=order_cart_rec.get('account_id', None)):

View File

@@ -30,23 +30,30 @@ class Order_Cart_Line_Base(BaseModel):
default_factory = lambda:secrets.token_urlsafe(default_num_bytes), default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
) )
id: Optional[int] = Field( id: Optional[int] = Field(
#alias = 'order_cart_line_id' alias = 'order_cart_line_id'
) )
#order_cart_line_id_random: Optional[str] #order_cart_line_id_random: Optional[str]
order_cart_id_random: Optional[str] order_cart_id_random: Optional[str]
order_cart_id: Optional[int] order_cart_id: Optional[int]
product_id_random: str product_id_random: str
product_id: Optional[int] product_id: Optional[int]
product_type_id: Optional[int] product_type_id: Optional[int]
product_type: Optional[str] product_type: Optional[str]
product_name: Optional[str] product_name: Optional[str]
product_description: Optional[str] product_description: Optional[str]
product_unit_price: Optional[int] = Field(0, ge=0, lt=1500000) product_unit_price: Optional[int] = Field(0, ge=0, lt=1500000)
product_max_quantity: Optional[int] = Field(0, ge=0, lt=150) product_max_quantity: Optional[int] = Field(0, ge=0, lt=150)
quantity: int = Field(0, ge=0, lt=150) quantity: int = Field(0, ge=0, lt=150)
amount: int = Field(0, ge=0, lt=1500000) amount: int = Field(0, ge=0, lt=1500000)
recurring: Optional[bool] = False recurring: Optional[bool] = False
message: Optional[str] message: Optional[str]
notes: Optional[str] notes: Optional[str]
created_on: Optional[datetime.datetime] = None created_on: Optional[datetime.datetime] = None
updated_on: Optional[datetime.datetime] = None updated_on: Optional[datetime.datetime] = None
@@ -92,6 +99,7 @@ class Order_Cart_Line_Base(BaseModel):
class Config: class Config:
underscore_attrs_are_private = True underscore_attrs_are_private = True
allow_population_by_field_name = True
fields = base_fields fields = base_fields
@@ -105,19 +113,24 @@ class Order_Cart_DB_Base(BaseModel):
default_factory = lambda:secrets.token_urlsafe(default_num_bytes), default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
) )
id: Optional[int] = Field( id: Optional[int] = Field(
#alias = 'order_cart_id' alias = 'order_cart_id'
) )
account_id_random: Optional[str] account_id_random: Optional[str]
account_id: Optional[int] # NOTE: This is not really optional account_id: Optional[int] # NOTE: This is not really optional
person_id_random: Optional[str] person_id_random: Optional[str]
person_id: Optional[int] person_id: Optional[int]
user_id_random: Optional[str] user_id_random: Optional[str]
user_id: Optional[int] user_id: Optional[int]
order_id_random: Optional[str] order_id_random: Optional[str]
order_id: Optional[int] order_id: Optional[int]
total_quantity: Optional[int] = Field(0, ge=0, lt=150) total_quantity: Optional[int] = Field(0, ge=0, lt=150)
total_amount: Optional[int] = Field(0, ge=0, lt=1500000) total_amount: Optional[int] = Field(0, ge=0, lt=1500000)
notes: Optional[str] notes: Optional[str]
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now) _processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
@@ -178,6 +191,7 @@ class Order_Cart_DB_Base(BaseModel):
class Config: class Config:
underscore_attrs_are_private = True underscore_attrs_are_private = True
allow_population_by_field_name = True
fields = base_fields fields = base_fields
@@ -191,27 +205,31 @@ class Order_Cart_Base(BaseModel):
default_factory = lambda:secrets.token_urlsafe(default_num_bytes), default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
) )
id: Optional[int] = Field( id: Optional[int] = Field(
#alias = 'order_cart_id' alias = 'order_cart_id'
) )
#order_cart_id_random: Optional[str]
#order_cart_id: Optional[int]
account_id_random: Optional[str] account_id_random: Optional[str]
account_id: Optional[int] # NOTE: This is not really optional account_id: Optional[int] # NOTE: This is not really optional
person_id_random: Optional[str] person_id_random: Optional[str]
person_id: Optional[int] person_id: Optional[int]
user_id_random: Optional[str] user_id_random: Optional[str]
user_id: Optional[int] user_id: Optional[int]
order_id_random: Optional[str] order_id_random: Optional[str]
order_id: Optional[int] order_id: Optional[int]
total_quantity: Optional[int] = Field(0, ge=0, lt=150) total_quantity: Optional[int] = Field(0, ge=0, lt=150)
total_amount: Optional[int] = Field(0, ge=0, lt=1500000) total_amount: Optional[int] = Field(0, ge=0, lt=1500000)
notes: Optional[str] notes: Optional[str]
created_on: Optional[datetime.datetime] = None created_on: Optional[datetime.datetime] = None
updated_on: Optional[datetime.datetime] = None updated_on: Optional[datetime.datetime] = None
# Including other related objects # Including other related objects
order_cart_line_li: List[Order_Cart_Line_Base] = [] order_cart_line_list: Optional[list[Order_Cart_Line_Base]] # Order_Line_Base() # List[Order_Cart_Line_Base] = []
cfg: Optional[Order_Cart_Cfg_Base] = Order_Cart_Cfg_Base() # Should this be renamed to order_cart_cfg? cfg: Optional[Order_Cart_Cfg_Base] = Order_Cart_Cfg_Base() # Should this be renamed to order_cart_cfg?
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now) _processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
@@ -272,4 +290,5 @@ class Order_Cart_Base(BaseModel):
class Config: class Config:
underscore_attrs_are_private = True underscore_attrs_are_private = True
allow_population_by_field_name = True
fields = base_fields fields = base_fields

View File

@@ -43,25 +43,29 @@ async def post_order_cart_obj(
return result return result
# Update 2021-08-02 (partially)
@router.patch('/{order_cart_id}', response_model=Resp_Body_Base) @router.patch('/{order_cart_id}', response_model=Resp_Body_Base)
async def patch_order_cart_obj( async def patch_order_cart_obj(
order_cart_id: str = Query(..., min_length=1, max_length=22), order_cart_id: str = Query(..., min_length=1, max_length=22),
order_cart_obj: Order_Cart_Base = None, order_cart_obj: Order_Cart_Base = None,
repl_order_cart_line_list: Optional[bool] = False, # Replace all the lines instead of trying to update repl_order_cart_line_list: Optional[bool] = False, # Replace all the lines instead of trying to update
# was repl_order_cart_line_li # NOTE: It was with out _list, just _li # was repl_order_cart_line_list # NOTE: It was with out _list, just _li
x_account_id: Optional[str] = Header(..., ), x_account_id: Optional[str] = Header(..., ),
return_obj: Optional[bool] = True, return_obj: Optional[bool] = True,
inc_order_cart_line_li: Optional[bool] = True, inc_order_cart_line_list: Optional[bool] = True,
inc_order_cart_cfg: Optional[bool] = True, inc_order_cart_cfg: Optional[bool] = True,
by_alias: Optional[bool] = True, by_alias: Optional[bool] = True,
exclude_unset: Optional[bool] = True, exclude_unset: Optional[bool] = True,
): ):
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
log.debug(order_cart_obj) log.debug(order_cart_obj)
order_cart_obj_up_result = update_order_cart_obj(order_cart_obj=order_cart_obj, repl_order_cart_line_li=repl_order_cart_line_li) order_cart_obj_up_result = update_order_cart_obj(
order_cart_obj = order_cart_obj,
repl_order_cart_line_list = repl_order_cart_line_list,
)
if isinstance(order_cart_obj_up_result, int): if isinstance(order_cart_obj_up_result, int):
log.info(f'Order cart update and the result was an int: {order_cart_obj_up_result}') log.info(f'Order cart update and the result was an int: {order_cart_obj_up_result}')
pass pass
@@ -73,7 +77,11 @@ async def patch_order_cart_obj(
return mk_resp(data=False, status_code=500) # Internal Server Error return mk_resp(data=False, status_code=500) # Internal Server Error
if return_obj: if return_obj:
if order_cart_obj := load_order_cart_obj(order_cart_id=order_cart_id, inc_order_cart_line_li=inc_order_cart_line_li, inc_order_cart_cfg=inc_order_cart_cfg): if order_cart_obj := load_order_cart_obj(
order_cart_id = order_cart_id,
inc_order_cart_line_list = inc_order_cart_line_list,
inc_order_cart_cfg = inc_order_cart_cfg
):
data = order_cart_obj.dict(by_alias=True, exclude_unset=False) data = order_cart_obj.dict(by_alias=True, exclude_unset=False)
return mk_resp(data=data) return mk_resp(data=data)
else: else:
@@ -110,13 +118,13 @@ async def lookup_order_cart_obj(
response: Response, response: Response,
for_obj_type: Optional[str] = Query(None, min_length=2, max_length=50), for_obj_type: Optional[str] = Query(None, min_length=2, max_length=50),
for_obj_id: Optional[Union[int,str]] = None, for_obj_id: Optional[Union[int,str]] = None,
inc_order_cart_line_li: Optional[bool] = True, inc_order_cart_line_list: Optional[bool] = True,
inc_order_cart_cfg: Optional[bool] = True, inc_order_cart_cfg: Optional[bool] = True,
x_account_id: str = Header(...), x_account_id: str = Header(...),
by_alias: Optional[bool] = True, by_alias: Optional[bool] = True,
exclude_unset: Optional[bool] = True, exclude_unset: Optional[bool] = True,
): ):
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
obj_type = 'order_cart' obj_type = 'order_cart'
@@ -162,7 +170,11 @@ async def lookup_order_cart_obj(
order_cart_id = order_cart_obj_result.get('order_cart_id', None) order_cart_id = order_cart_obj_result.get('order_cart_id', None)
order_cart_id_random = order_cart_obj_result.get('order_cart_id_random', None) order_cart_id_random = order_cart_obj_result.get('order_cart_id_random', None)
if order_cart_obj := load_order_cart_obj(order_cart_id=order_cart_id, inc_order_cart_line_li=inc_order_cart_line_li, inc_order_cart_cfg=inc_order_cart_cfg): if order_cart_obj := load_order_cart_obj(
order_cart_id = order_cart_id,
inc_order_cart_line_list = inc_order_cart_line_list,
inc_order_cart_cfg = inc_order_cart_cfg,
):
data = order_cart_obj.dict(by_alias=True, exclude_unset=False) data = order_cart_obj.dict(by_alias=True, exclude_unset=False)
return mk_resp(data=data) return mk_resp(data=data)
else: else:
@@ -173,7 +185,9 @@ async def lookup_order_cart_obj(
order_cart_id = order_cart_obj.get('order_cart_id', None) order_cart_id = order_cart_obj.get('order_cart_id', None)
order_cart_obj_li.append( order_cart_obj_li.append(
load_order_cart_obj( load_order_cart_obj(
order_cart_id=order_cart_id, inc_order_cart_line_li=inc_order_cart_line_li, inc_order_cart_cfg=inc_order_cart_cfg order_cart_id = order_cart_id,
inc_order_cart_line_list = inc_order_cart_line_list,
inc_order_cart_cfg = inc_order_cart_cfg,
) )
) )
data = order_cart_obj_li data = order_cart_obj_li
@@ -183,10 +197,11 @@ async def lookup_order_cart_obj(
return mk_resp(data=False, status_code=404, response=response) # Not Found return mk_resp(data=False, status_code=404, response=response) # Not Found
# Update 2021-08-02 (partially)
@router.get('/{order_cart_id}', response_model=Resp_Body_Base) @router.get('/{order_cart_id}', response_model=Resp_Body_Base)
async def get_order_cart_obj( async def get_order_cart_obj(
order_cart_id: str = Query(..., min_length=1, max_length=22), order_cart_id: str = Query(..., min_length=1, max_length=22),
inc_order_cart_line_li: bool = False, inc_order_cart_line_list: bool = False,
inc_order_cart_cfg: bool = False, inc_order_cart_cfg: bool = False,
x_account_id: str = Header(...), x_account_id: str = Header(...),
by_alias: bool = True, by_alias: bool = True,
@@ -195,7 +210,11 @@ async def get_order_cart_obj(
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
if order_cart_obj := load_order_cart_obj(order_cart_id=order_cart_id, inc_order_cart_line_li=inc_order_cart_line_li, inc_order_cart_cfg=inc_order_cart_cfg): if order_cart_obj := load_order_cart_obj(
order_cart_id = order_cart_id,
inc_order_cart_line_list = inc_order_cart_line_list,
inc_order_cart_cfg = inc_order_cart_cfg,
):
data = order_cart_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset) data = order_cart_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset)
return mk_resp(data=data) return mk_resp(data=data)
else: else: