diff --git a/app/models/membership_methods.py b/app/models/membership_methods.py index 12646c7..a4beedf 100644 --- a/app/models/membership_methods.py +++ b/app/models/membership_methods.py @@ -163,7 +163,7 @@ def save_membership_obj(order_obj_new:Membership_Base=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: +def load_membership_obj(membership_id:int|str, inc_membership_profile:bool=False, inc_membership_cfg:bool=False, inc_extended_profile:bool=False, inc_person:bool=False, inc_user:bool=False) -> Membership_Base: log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.debug(locals()) @@ -197,6 +197,20 @@ def load_membership_obj(membership_id:int|str, inc_membership_profile:bool=False membership_rec['extended_profile'] = extended_profile_rec + if inc_person: + if person_rec := sql_select(table_name='v_person', record_id=membership_rec.get('person_id')): + #log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(person_rec) + + membership_rec['person'] = person_rec + + if inc_user: + if user_rec := sql_select(table_name='v_user', record_id=membership_rec.get('user_id')): + #log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(user_rec) + + membership_rec['user'] = user_rec + #log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.debug(membership_rec) else: diff --git a/app/routers/membership.py b/app/routers/membership.py index c044030..65920a9 100644 --- a/app/routers/membership.py +++ b/app/routers/membership.py @@ -100,6 +100,8 @@ async def lookup_membership_obj( inc_membership_profile: bool = True, inc_membership_cfg: bool = True, inc_extended_profile: bool = True, + inc_person: bool = True, + inc_user: bool = True, by_alias: bool = True, exclude_unset: bool = True, ): @@ -128,6 +130,10 @@ async def lookup_membership_obj( data['user_id'] = for_obj_id sql_where_for_obj_type = """`membership`.user_id = :user_id""" sql_limit = 'LIMIT 1' + elif for_obj_type == 'membership' and for_obj_id: + data['membership_id'] = for_obj_id + sql_where_for_obj_type = """`membership`.id = :membership_id""" + sql_limit = 'LIMIT 1' else: log.debug(f'Object type={for_obj_type}; Object ID={for_obj_id}') return mk_resp(data=False, status_code=400) # Bad Request @@ -147,7 +153,9 @@ async def lookup_membership_obj( membership_id=membership_id, inc_membership_profile=inc_membership_profile, inc_membership_cfg=inc_membership_cfg, - inc_extended_profile=inc_extended_profile + inc_extended_profile=inc_extended_profile, + inc_person=inc_person, + inc_user=inc_user, ).dict(by_alias=by_alias, exclude_unset=exclude_unset) data = membership_obj elif isinstance(membership_obj_result, list): @@ -159,7 +167,9 @@ async def lookup_membership_obj( membership_id=membership_id, inc_membership_profile=inc_membership_profile, inc_membership_cfg=inc_membership_cfg, - inc_extended_profile=inc_extended_profile + inc_extended_profile=inc_extended_profile, + inc_person=inc_person, + inc_user=inc_user, ).dict(by_alias=by_alias, exclude_unset=exclude_unset) ) data = membership_obj_li