From 59b263e5b80639d73f8dba20543bb59c1cc38df3 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Tue, 25 Jan 2022 20:01:46 -0500 Subject: [PATCH] Work on order and Strip related. Also general code clean up --- app/methods/order_methods.py | 9 ++++++--- app/models/account_cfg_models.py | 6 +++--- app/models/order_cfg_models.py | 3 +++ app/models/order_models_v3.py | 7 ++++++- app/routers/order_v3.py | 2 +- 5 files changed, 19 insertions(+), 8 deletions(-) diff --git a/app/methods/order_methods.py b/app/methods/order_methods.py index ff1edb3..4e5a2eb 100644 --- a/app/methods/order_methods.py +++ b/app/methods/order_methods.py @@ -345,7 +345,7 @@ def get_order_id_cart_for_person_id_v3( FROM `order` AS `order` WHERE `order`.person_id = :person_id - AND `order`.status = 'open' + AND `order`.status IN ('open', 'locked') {sql_enabled} ORDER BY `order`.created_on DESC, `order`.updated_on DESC {sql_limit}; @@ -534,7 +534,7 @@ def get_order_rec_list( from_datetime: datetime.datetime = None, to_datetime: datetime.datetime = None, # balance_gt: int = 0, # $0 to $99999 - status: str = 'closed', # started, in progress, complete, all + status: list|str = 'closed', # started, in progress, complete, all # checkout_status: str = 'none', # none, canceled, waiting, success, failed, unknown enabled: str = 'enabled', # enabled, disabled, all limit: int = 500, @@ -560,7 +560,10 @@ def get_order_rec_list( # allowed_status_li = ['open', 'locked', 'reopened', 'closed', 'canceled', 'other'] # NEW list allowed_status_li = ['open', 'locked', 'in progress', 'reopened', 'closed', 'complete', 'canceled', 'other'] # TEMPORARY list... sql_status = '' - if status in allowed_status_li: + if isinstance(status, list): + data['status'] = status + sql_status = f'AND `order`.status IN :status' + elif status in allowed_status_li: if status == 'closed' or status == 'complete': data['status'] = ['closed', 'complete'] sql_status = f'AND `order`.status IN :status' diff --git a/app/models/account_cfg_models.py b/app/models/account_cfg_models.py index 0fe006d..bea51cd 100644 --- a/app/models/account_cfg_models.py +++ b/app/models/account_cfg_models.py @@ -85,9 +85,9 @@ class Account_Cfg_Base(BaseModel): hide_posts_after: Optional[int] # Should posts be singular? delete_posts_after: Optional[int] # Should posts be singular? - stripe_api_key: Optional[str] - stripe_publishable_key: Optional[str] - stripe_account_id: Optional[str] + stripe_api_key: Optional[str] # Secret/Private + stripe_publishable_key: Optional[str] # Publish/Sharable + stripe_account_id: Optional[str] # Connected Stripe Account ID created_on: Optional[datetime.datetime] = None updated_on: Optional[datetime.datetime] = None diff --git a/app/models/order_cfg_models.py b/app/models/order_cfg_models.py index ba33d5b..3a425aa 100644 --- a/app/models/order_cfg_models.py +++ b/app/models/order_cfg_models.py @@ -31,6 +31,9 @@ class Order_Cfg_Base(BaseModel): order_fundraising_thanks: Optional[str] order_fundraising_message: Optional[str] + stripe_api_key: Optional[str] # Secret/Private + stripe_publishable_key: Optional[str] # Publish/Sharable + stripe_account_id: Optional[str] # Connected Stripe Account ID _processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now) diff --git a/app/models/order_models_v3.py b/app/models/order_models_v3.py index e93ac94..0aab5e3 100644 --- a/app/models/order_models_v3.py +++ b/app/models/order_models_v3.py @@ -36,7 +36,7 @@ class Order_Base(BaseModel): total_bill: Optional[int] = Field(0, ge=0, lt=1500000) # Set with triggers; matches total_amount in order_cart total_paid: Optional[int] = Field(0, ge=0, lt=1500000) balance: Optional[int] = Field(0, ge=-1500000, lt=1500000) # Calculated with trigger - status: Optional[str] # open, locked, reopened, closed, canceled, other + status: Optional[Union[list,str]] # open, locked, reopened, closed, canceled, other # open = building or creating cart, payment failed and no partial payment already processed # locked = processing payment, partial payment processed, admin lock? (no changes allowed) # closed = successful payment(s) with no balance, complete (no changes allowed) @@ -44,12 +44,16 @@ class Order_Base(BaseModel): # other = other reasons (no changes allowed) checkout_status: Optional[str] # canceled, waiting, success, failed, unknown # none = no checkout attempted + # started = checkout session has started + # created = checkout session created # canceled = checkout attempted but canceled for some reason # waiting = the payment is processing or awaiting some type of authorization # success = payment successful (their may still be a balance) # failed = the payment failed for some reason # unknown = unknown response... + stripe_checkout_session_id: Optional[str] # 67 characters long + notes: Optional[str] created_on: Optional[datetime.datetime] = None @@ -60,6 +64,7 @@ class Order_Base(BaseModel): dollar_total_bill: Optional[str] # From SQL view dollar_total_paid: Optional[str] # From SQL view dollar_balance: Optional[str] # From SQL view + person_stripe_customer_id: Optional[str] # From SQL view # Including other related objects cfg: Optional[Order_Cfg_Base] diff --git a/app/routers/order_v3.py b/app/routers/order_v3.py index 0ba1107..1990bc2 100644 --- a/app/routers/order_v3.py +++ b/app/routers/order_v3.py @@ -95,7 +95,7 @@ async def patch_order_obj( commons: Common_Route_Params = Depends(common_route_params), ): - log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.debug(locals()) # ### SECTION ### Secondary data validation