Work membership and general clean up

This commit is contained in:
Scott Idem
2021-03-17 19:30:13 +00:00
parent 4785781cac
commit b57e51e8e7
8 changed files with 118 additions and 45 deletions

0
app/models/__init__.py Normal file
View File

View File

@@ -5,8 +5,7 @@ from typing import Dict, List, Optional, Set, Union
from pydantic import BaseModel, EmailStr, Field, PrivateAttr, ValidationError, validator
from ..lib_general import *
from ..log import *
from .db_sql import sql_select
from ..db_sql import sql_select
#from .address_model import Address_Base
#from .contact_model import Contact_Base
@@ -160,17 +159,16 @@ def save_membership_obj(order_obj_new:Membership_Base=None):
else: return False
log.debug(order_line_obj_resp)
return order_id
# ### END ### API Membership Model ### save_membership_obj() ###
# ### END ### API Membership Model ### save_membership_obj() ###
# ### BEGIN ### API Membership Model ### get_membership_obj() ###
def get_membership_obj(membership_id=None, inc_membership_profile=None, inc_membership_cfg=None, inc_cust_profile=None):
# ### BEGIN ### API Membership Model ### load_membership_obj() ###
def load_membership_obj(membership_id:int|str, inc_membership_profile:bool=False, inc_membership_cfg:bool=False, inc_extended_profile:bool=False) -> Membership_Base:
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if membership_id := redis_lookup_id_random(record_id_random=membership_id, table_name='membership'): pass
else:
return False
else: return False
if membership_rec := sql_select(table_name='v_membership', record_id=membership_id):
#log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
@@ -190,14 +188,14 @@ def get_membership_obj(membership_id=None, inc_membership_profile=None, inc_memb
membership_rec['cfg'] = membership_cfg_rec
if inc_cust_profile:
if inc_extended_profile:
account_code = membership_rec.get('account_code', None)
table_name = f'c_{account_code}_membership_profile'
if cust_profile_rec := sql_select(table_name=table_name, field_name='membership_id', field_value=membership_id):
if extended_profile_rec := sql_select(table_name=table_name, field_name='membership_id', field_value=membership_id):
#log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(cust_profile_rec)
log.debug(extended_profile_rec)
membership_rec['cust_profile'] = cust_profile_rec
membership_rec['extended_profile'] = extended_profile_rec
#log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(membership_rec)
@@ -211,4 +209,4 @@ def get_membership_obj(membership_id=None, inc_membership_profile=None, inc_memb
log.error(e.json())
return membership_obj
# ### END ### API Membership Model ### get_membership_obj() ###
# ### END ### API Membership Model ### load_membership_obj() ###

View File

@@ -36,8 +36,8 @@ class Membership_Cfg_Base(BaseModel):
reject_message: Optional[str]
renew_message: Optional[str]
#cust_membership_profile: Optional[str] # list of dicts outlining custom membership profile fields for client
cust_membership_profile: Optional[Json] = '[]' # list of dicts outlining custom membership profile fields for client
#extended_membership_profile: Optional[str] # list of dicts outlining extended (custom) membership profile fields for client
extended_membership_profile: Optional[Json] = '[]' # list of dicts outlining extended (custom) membership profile fields for client
default_no_reply_email: Optional[str]
default_no_reply_name: Optional[str]
@@ -216,7 +216,7 @@ class Membership_Base(BaseModel):
user: 'Optional[User_Base]' = User_Base()
cfg: 'Optional[Membership_Cfg_Base]' = Membership_Cfg_Base()
cust_profile: Optional[dict] = {}
extended_profile: Optional[dict] = {}
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)

View File

@@ -11,7 +11,7 @@ from .order_cart_model import Order_Cart_Base
# ### BEGIN ### API Order Cart Methods ### load_order_cart_obj() ###
def load_order_cart_obj(order_cart_id:int|str=None, inc_order_cart_line_li=None, inc_order_cart_cfg=None):
def load_order_cart_obj(order_cart_id:int|str, inc_order_cart_line_li:bool=False, inc_order_cart_cfg:bool=False):
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())

View File

@@ -13,13 +13,10 @@ from .order_model import Order_Base
# ### BEGIN ### API Order Model ### save_order_obj() ###
def save_order_obj(order_obj_new:Order_Base=None, repl_order_line_list:bool=False):
def save_order_obj(order_obj_new:Order_Base, repl_order_line_list:bool=False):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if not order_obj_new:
return False
log.debug(order_obj_new.dict(by_alias=False, exclude_defaults=False, exclude_unset=True))
order_line_obj_li_curr = [] # Initialize to store order_line list
@@ -160,7 +157,7 @@ def save_order_obj(order_obj_new:Order_Base=None, repl_order_line_list:bool=Fals
# ### BEGIN ### API Order Model ### load_order_obj() ###
def load_order_obj(order_id=None, inc_order_line_li=None, inc_order_cfg=None, inc_person_obj=None, inc_user_obj=None):
def load_order_obj(order_id:int|str, inc_order_line_li:bool=False, inc_order_cfg:bool=False, inc_person_obj:bool=False, inc_user_obj:bool=False):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())

View File

@@ -5,13 +5,13 @@ from typing import Dict, List, Optional, Set, Union
from pydantic import BaseModel, EmailStr, Field, Json, PrivateAttr, ValidationError, validator
from ..lib_general import *
from ..log import *
from app.config import settings
from .common_field_schema import base_fields, default_num_bytes
# ### BEGIN ### API Response Model ### Resp_Body_Base() ###
# The pydantic BaseModel to help make consistent REST responses - STI 2021-03-05
class Resp_Body_Base(BaseModel):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
@@ -19,16 +19,18 @@ class Resp_Body_Base(BaseModel):
data: Union[dict, list]
meta: Optional[dict]
# ### END ### API Response Model ### Resp_Body_Base() ###
# The make response function for REST - STI 2021-03-05
def mk_resp(data:dict={}, dict_to_json:bool=None, status_code:int=200, status_message:str=None, status_name:str=None, success:bool=True, details:bool=None, by_alias:bool=True, exclude_unset:bool=True):
# ### BEGIN ### API Response Model ### mk_resp() ###
# The make response function for REST - STI 2021-03-17
def mk_resp(data:None|bool|dict|list, dict_to_json:bool=False, status_code:int=200, status_message:str='', status_name:str='', success:bool=True, details:str='', by_alias:bool=True, exclude_unset:bool=True):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if data is None: data = { 'result': None }
elif data == False: data = { 'result': False }
elif data == True: data = { 'result': True }
if data is None: data = { 'result': data }
elif data == False: data = { 'result': data }
elif data == True: data = { 'result': data }
resp_body = {}
resp_body['data'] = data
@@ -54,11 +56,6 @@ def mk_resp(data:dict={}, dict_to_json:bool=None, status_code:int=200, status_me
log.debug(type(resp_body['data']))
resp_body = Resp_Body_Base(**resp_body).dict(by_alias=by_alias, exclude_unset=exclude_unset)
#resp_body_json = resp_body.json(by_alias=True, exclude_unset=False)
#response = app.response_class(
#response=resp_body_json,
#status=status_code,
#mimetype='application/json'
#)
return resp_body
# ### END ### API Response Model ### mk_resp() ###