Work on membership and related

This commit is contained in:
Scott Idem
2022-01-12 18:58:07 -05:00
parent 55063d0f94
commit 771778669e
8 changed files with 79 additions and 55 deletions

View File

@@ -39,7 +39,7 @@ def sql_insert(
rm_id_random: bool = False, rm_id_random: bool = False,
id_random_length: int = 8, id_random_length: int = 8,
): ):
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
if sql: if sql:

View File

@@ -8,6 +8,7 @@ from app.db_sql import redis_lookup_id_random, sql_insert, sql_select, sql_updat
from app.lib_general import log, logging from app.lib_general import log, logging
# from app.methods.membership_person_methods import get_membership_person_rec_list, load_membership_person_obj # from app.methods.membership_person_methods import get_membership_person_rec_list, load_membership_person_obj
from app.models.common_field_schema import default_num_bytes
from app.models.membership_person_group_models import Membership_Person_Group_Base from app.models.membership_person_group_models import Membership_Person_Group_Base

View File

@@ -16,6 +16,7 @@ from app.methods.person_methods import load_person_obj
from app.methods.product_methods import load_product_obj from app.methods.product_methods import load_product_obj
from app.methods.user_methods import load_user_obj from app.methods.user_methods import load_user_obj
from app.models.common_field_schema import default_num_bytes
from app.models.membership_person_models import Membership_Person_Base from app.models.membership_person_models import Membership_Person_Base
@@ -32,13 +33,13 @@ def load_membership_person_obj(
inc_contact: bool = False, inc_contact: bool = False,
inc_membership_cfg: bool = False, inc_membership_cfg: bool = False,
# inc_membership_group: bool = False, # Their primary membership group # inc_membership_group: bool = False, # Their primary membership group
inc_membership_group_list: bool = False, # List of membership group for a person - 2022-01-11 inc_membership_person_group_list: bool = False, # List of membership group for a person - 2022-01-11
# inc_membership_person_group: bool = False, # The person information for their primary membership group # inc_membership_person_group: bool = False, # The person information for their primary membership group
# inc_membership_person_group_list: bool = False, # The person information for all of their membership groups # inc_membership_person_group_list: bool = False, # The person information for all of their membership groups
# inc_membership_person_profile: bool = False, # inc_membership_person_profile: bool = False,
# inc_membership_person_profile_cust: bool = False, # Extended profile? # inc_membership_person_profile_cust: bool = False, # Extended profile?
inc_membership_profile: bool = False, # Membership profile for a person - 2022-01-11 inc_membership_person_profile: bool = False, # Membership profile for a person - 2022-01-11
inc_membership_type: bool = False, # Primary membership type for a person - 2022-01-11 inc_membership_person_type: bool = False, # Primary membership type for a person - 2022-01-11
# inc_membership_type_list: bool = False, # The list of membership types the person is a part of # inc_membership_type_list: bool = False, # The list of membership types the person is a part of
# inc_membership_person_type: bool = False, # The person information for their primary membership type # inc_membership_person_type: bool = False, # The person information for their primary membership type
# inc_membership_person_type_list: bool = False, # The person information for all of their membership types # inc_membership_person_type_list: bool = False, # The person information for all of their membership types
@@ -80,19 +81,19 @@ def load_membership_person_obj(
membership_person_obj.membership_cfg = membership_cfg_obj_result membership_person_obj.membership_cfg = membership_cfg_obj_result
else: membership_person_obj.membership_cfg = {} # None else: membership_person_obj.membership_cfg = {} # None
if inc_membership_group: pass # The primary membership group the person is a part of. Not used at this time. 2021-12-16 # if inc_membership_group: pass # The primary membership group the person is a part of. Not used at this time. 2021-12-16
# Updated 2021-07-09 # Updated 2021-01-12
if inc_membership_group_list: # The list of groups the member is a part of if inc_membership_person_group_list: # List of membership group for a person - 2022-01-11
if membership_group_rec_list_result := get_membership_group_rec_list( if membership_person_group_rec_list_result := get_membership_person_group_rec_list(
membership_person_id = membership_person_id, membership_person_id = membership_person_id,
limit = limit, limit = limit,
enabled = enabled, enabled = enabled,
): ):
membership_group_result_list = [] membership_person_group_result_list = []
for membership_group_rec in membership_group_rec_list_result: for membership_person_group_rec in membership_person_group_rec_list_result:
if load_membership_group_result := load_membership_group_obj( if load_membership_person_group_result := load_membership_person_group_obj(
membership_group_id = membership_group_rec.get('membership_group_id', None), membership_person_group_id = membership_person_group_rec.get('membership_person_group_id', None),
limit = limit, limit = limit,
by_alias = by_alias, by_alias = by_alias,
exclude_unset = exclude_unset, exclude_unset = exclude_unset,
@@ -106,10 +107,10 @@ def load_membership_person_obj(
# inc_product_list = inc_product_list, # inc_product_list = inc_product_list,
# inc_user = inc_user, # inc_user = inc_user,
): ):
membership_group_result_list.append(load_membership_group_result) membership_person_group_result_list.append(load_membership_person_group_result)
else: membership_group_result_list.append(None) else: membership_person_group_result_list.append(None)
membership_person_obj.membership_group_list = membership_group_result_list membership_person_obj.membership_group_list = membership_person_group_result_list
else: membership_person_obj.membership_group_list = [] else: membership_person_obj.membership_person_group_list = []
# Updated 2021-07-09 # Updated 2021-07-09
# if inc_membership_person_group_list: # The person information for the list of groups the member is a part of # if inc_membership_person_group_list: # The person information for the list of groups the member is a part of
@@ -143,7 +144,7 @@ def load_membership_person_obj(
# else: membership_person_obj.membership_person_group_list = [] # else: membership_person_obj.membership_person_group_list = []
# Updated 2021-06-21 # Updated 2021-06-21
if inc_membership_profile: if inc_membership_person_profile: # Membership profile for a person - 2022-01-11
membership_person_profile_id = membership_person_rec.get('membership_person_profile_id', None) membership_person_profile_id = membership_person_rec.get('membership_person_profile_id', None)
log.debug(membership_person_profile_id) log.debug(membership_person_profile_id)
if membership_person_profile_result := load_membership_person_profile_obj( if membership_person_profile_result := load_membership_person_profile_obj(
@@ -161,13 +162,13 @@ def load_membership_person_obj(
else: membership_person_obj.membership_person_profile = {} # None else: membership_person_obj.membership_person_profile = {} # None
log.debug(membership_person_profile_result) log.debug(membership_person_profile_result)
# Updated 2021-07-09 # Updated 2021-01-12
if inc_membership_type: # The primary membership type for the person if inc_membership_person_type: # Primary membership type for a person - 2022-01-11
from app.methods.membership_type_methods import load_membership_type_obj from app.methods.membership_person_type_methods import load_membership_person_type_obj
membership_type_id = membership_person_rec.get('membership_type_id', None) membership_person_type_id = membership_person_rec.get('membership_person_type_id', None)
log.debug(membership_type_id) log.debug(membership_person_type_id)
if membership_type_result := load_membership_type_obj( if membership_person_type_result := load_membership_person_type_obj(
membership_type_id = membership_type_id, membership_person_type_id = membership_person_type_id,
limit = limit, limit = limit,
by_alias = by_alias, by_alias = by_alias,
exclude_unset = exclude_unset, exclude_unset = exclude_unset,
@@ -180,11 +181,11 @@ def load_membership_person_obj(
# inc_organization = inc_organization, # inc_organization = inc_organization,
inc_product_list = inc_product_list, inc_product_list = inc_product_list,
): ):
membership_person_obj.membership_type = membership_type_result membership_person_obj.membership_person_type = membership_person_type_result
else: membership_person_obj.membership_type = {} # None else: membership_person_obj.membership_person_type = {} # None
log.debug(membership_type_result) log.debug(membership_person_type_result)
if inc_membership_type_list: pass # All of the membership types the person is a part of # if inc_membership_person_type_list: pass # All of the membership types the person is a part of
# Updated 2021-07-09 # Updated 2021-07-09
# if inc_membership_person_type: # The primary membership type person information for the person # if inc_membership_person_type: # The primary membership type person information for the person
@@ -453,21 +454,21 @@ def create_membership_person_obj(
membership_person_outline['membership_person_type'] = {} membership_person_outline['membership_person_type'] = {}
membership_person_outline['membership_person_type_id'] = None membership_person_outline['membership_person_type_id'] = None
if membership_person_obj.membership_person_type_list: if membership_person_obj.membership_person_group_list:
log.info('Looping through Membership Person Group object list') log.info('Looping through Membership Person Group object list')
for membership_person_type_obj in membership_person_type_obj_list_result: for membership_person_group_obj in membership_person_group_obj_list_result:
if membership_person_type_obj.id: if membership_person_group_obj.id:
log.info('Updating Membership Person Group object') log.info('Updating Membership Person Group object')
if membership_person_type_update_result := update_membership_person_type_obj( if membership_person_group_update_result := update_membership_person_group_obj(
membership_person_type_id = membership_person_type_id, membership_person_group_id = membership_person_group_id,
membership_person_type_dict_obj = membership_person_type_obj, membership_person_group_dict_obj = membership_person_group_obj,
): pass ): pass
else: return False else: return False
else: else:
log.info('Creating Membership Person Group object') log.info('Creating Membership Person Group object')
if membership_person_type_create_result := create_membership_person_type_obj( if membership_person_group_create_result := create_membership_person_group_obj(
membership_person_id = membership_person_id, membership_person_id = membership_person_id,
membership_person_type_dict_obj = membership_person_type_obj, membership_person_group_dict_obj = membership_person_group_obj,
): pass ): pass
else: pass else: pass

View File

@@ -10,6 +10,7 @@ from app.lib_general import log, logging
from app.methods.membership_cfg_methods import load_membership_cfg_obj from app.methods.membership_cfg_methods import load_membership_cfg_obj
from app.methods.product_methods import get_product_rec_list, load_product_obj from app.methods.product_methods import get_product_rec_list, load_product_obj
from app.models.common_field_schema import default_num_bytes
from app.models.membership_person_type_models import Membership_Person_Type_Base from app.models.membership_person_type_models import Membership_Person_Type_Base
@@ -192,7 +193,7 @@ def create_membership_person_type_obj(
fail_any: bool = False, # Fail if any thing goes wrong for sub objects fail_any: bool = False, # Fail if any thing goes wrong for sub objects
return_outline: bool = False, return_outline: bool = False,
) -> bool|dict|int: ) -> bool|dict|int:
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())
# ### SECTION ### Secondary data validation # ### SECTION ### Secondary data validation
@@ -237,6 +238,24 @@ def create_membership_person_type_obj(
log.debug(membership_person_type_dict_in_result) log.debug(membership_person_type_dict_in_result)
membership_person_type_id = membership_person_type_dict_in_result membership_person_type_id = membership_person_type_dict_in_result
membership_person_data = {}
membership_person_data['id'] = membership_person_id
membership_person_data['membership_person_type_id'] = membership_person_type_id
# NOTE: Need to update the membership_person record with the new primary membership person type record.
# NOTE: This makes it so that there is only one primary type.
if membership_person_dict_up_result := sql_update(
data = membership_person_data,
table_name = 'membership_person',
rm_id_random = True
):
log.debug(f'Returning True')
log.debug(membership_person_dict_up_result)
else:
log.warning(f'Membership Person not updated with the new Membership Person Type ID. Membership Person ID: {membership_person_id}; Membership Person Type ID: {membership_person_type_id}')
log.debug(membership_person_type_dict_up_result)
return False
log.info(f'Returning the Membership Person Type ID: {membership_person_type_id}') log.info(f'Returning the Membership Person Type ID: {membership_person_type_id}')
return membership_person_type_id return membership_person_type_id

View File

@@ -20,7 +20,7 @@ from app.models.product_models import Product_Base
class Membership_Person_Base(BaseModel): class Membership_Person_Base(BaseModel):
log.setLevel(logging.INFO) log.setLevel(logging.DEBUG)
log.debug(locals()) log.debug(locals())
id_random: Optional[str] = Field( id_random: Optional[str] = Field(
@@ -69,13 +69,13 @@ class Membership_Person_Base(BaseModel):
membership_group_status_name: Optional[str] membership_group_status_name: Optional[str]
membership_type_id_random: Optional[str] = Field( membership_type_id_random: Optional[str] = Field(
alias = 'type_id_random', # alias = 'type_id_random',
) # NOTE: This is not optional ) # NOTE: This is not optional
membership_type_id: Optional[int] = Field( membership_type_id: Optional[int] = Field(
alias = 'type_id', # alias = 'type_id',
) # NOTE: This is not optional ) # NOTE: This is not optional
membership_type_name: Optional[str] = Field( membership_type_name: Optional[str] = Field(
alias = 'type_name', # alias = 'type_name',
) )
membership_person_type_id_random: Optional[str] = Field( membership_person_type_id_random: Optional[str] = Field(
@@ -86,11 +86,11 @@ class Membership_Person_Base(BaseModel):
) # NOTE: This is not optional ) # NOTE: This is not optional
membership_person_type_name: Optional[str] = Field( membership_person_type_name: Optional[str] = Field(
alias = 'membership_type_name', # type_person_name # alias = 'membership_type_name', # type_person_name
) )
membership_type_status_id: Optional[int] membership_person_type_status_id: Optional[int]
membership_type_status_name: Optional[str] membership_person_type_status_name: Optional[str]
person_id_random: Optional[str] person_id_random: Optional[str]
person_id: Optional[int] person_id: Optional[int]
@@ -146,6 +146,7 @@ class Membership_Person_Base(BaseModel):
membership_group_list: Optional[list[Membership_Group_Base]] membership_group_list: Optional[list[Membership_Group_Base]]
membership_type: Optional[Membership_Type_Base] # The primary membership type option they currently have membership_type: Optional[Membership_Type_Base] # The primary membership type option they currently have
# membership_type: Optional[dict]
membership_type_list: Optional[list[Membership_Type_Base]] membership_type_list: Optional[list[Membership_Type_Base]]
# membership_group_list: Optional[list] = Field( # membership_group_list: Optional[list] = Field(
@@ -200,7 +201,7 @@ class Membership_Person_Base(BaseModel):
log.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
log.debug(locals()) log.debug(locals())
if values['account_id_random']: if values.get('account_id_random'):
return redis_lookup_id_random(record_id_random=values['account_id_random'], table_name='account') return redis_lookup_id_random(record_id_random=values['account_id_random'], table_name='account')
return None return None
@@ -236,7 +237,7 @@ class Membership_Person_Base(BaseModel):
log.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
log.debug(locals()) log.debug(locals())
if values['membership_person_type_id_random']: if values.get('membership_person_type_id_random'):
return redis_lookup_id_random(record_id_random=values['membership_person_type_id_random'], table_name='membership_person_type') return redis_lookup_id_random(record_id_random=values['membership_person_type_id_random'], table_name='membership_person_type')
return None return None
@@ -245,7 +246,7 @@ class Membership_Person_Base(BaseModel):
log.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
log.debug(locals()) log.debug(locals())
if values['person_id_random']: if values.get('person_id_random'):
return redis_lookup_id_random(record_id_random=values['person_id_random'], table_name='person') return redis_lookup_id_random(record_id_random=values['person_id_random'], table_name='person')
return None return None
@@ -263,7 +264,7 @@ class Membership_Person_Base(BaseModel):
log.setLevel(logging.WARNING) log.setLevel(logging.WARNING)
log.debug(locals()) log.debug(locals())
if values['user_id_random']: if values.get('user_id_random'):
return redis_lookup_id_random(record_id_random=values['user_id_random'], table_name='user') return redis_lookup_id_random(record_id_random=values['user_id_random'], table_name='user')
return None return None

View File

@@ -14,7 +14,7 @@ from app.models.product_models import Product_Base
class Membership_Person_Type_Base(BaseModel): class Membership_Person_Type_Base(BaseModel):
log.setLevel(logging.WARNING) log.setLevel(logging.DEBUG)
log.debug(locals()) log.debug(locals())
id_random: Optional[str] = Field( id_random: Optional[str] = Field(
@@ -30,13 +30,13 @@ class Membership_Person_Type_Base(BaseModel):
account_id: Optional[int] account_id: Optional[int]
membership_type_id_random: Optional[str] = Field( membership_type_id_random: Optional[str] = Field(
alias = 'type_id_random', # alias = 'type_id_random',
) # NOTE: This is not optional ) # NOTE: This is not optional
membership_type_id: Optional[int] = Field( membership_type_id: Optional[int] = Field(
alias = 'type_id', # alias = 'type_id',
) # NOTE: This is not optional ) # NOTE: This is not optional
membership_type_name: Optional[str] = Field( membership_type_name: Optional[str] = Field(
alias = 'type_name', # alias = 'type_name',
) )
membership_person_id_random: Optional[str] membership_person_id_random: Optional[str]
@@ -46,10 +46,10 @@ class Membership_Person_Type_Base(BaseModel):
product_id: Optional[int] # The product they purchased to get this membership product_id: Optional[int] # The product they purchased to get this membership
lu_membership_type_status_id: Optional[int] = Field( lu_membership_type_status_id: Optional[int] = Field(
alias = 'status_id' # alias = 'status_id'
) )
membership_type_status_name: Optional[str] = Field( membership_type_status_name: Optional[str] = Field(
alias = 'status_name' # alias = 'status_name'
) )
level: Optional[int] = Field(0, ge=0, lt=150) level: Optional[int] = Field(0, ge=0, lt=150)

View File

@@ -11,6 +11,7 @@ from app.routers.api_crud import delete_obj_template, get_obj_template, get_obj_
from app.methods.membership_person_methods import create_membership_person_obj, get_membership_person_rec_list, load_membership_person_obj, update_membership_person_obj from app.methods.membership_person_methods import create_membership_person_obj, get_membership_person_rec_list, load_membership_person_obj, update_membership_person_obj
from app.models.common_field_schema import default_num_bytes
from app.models.membership_person_models import Membership_Person_Base from app.models.membership_person_models import Membership_Person_Base
from app.models.response_models import Resp_Body_Base, mk_resp from app.models.response_models import Resp_Body_Base, mk_resp
@@ -50,7 +51,7 @@ async def post_membership_person_obj(
else: return mk_resp(data=None, status_code=404, response=commons.response, status_message='The person ID was invalid or not found.') else: return mk_resp(data=None, status_code=404, response=commons.response, status_message='The person ID was invalid or not found.')
# ### SECTION ### Process data # ### SECTION ### Process data
if create_membership_person_obj_result := create_membership_person_obj( if membership_person_id := create_membership_person_obj(
account_id = commons.x_account_id, account_id = commons.x_account_id,
person_id = person_id, person_id = person_id,
membership_person_dict_obj = membership_person_obj, membership_person_dict_obj = membership_person_obj,

View File

@@ -12,6 +12,7 @@ from app.routers.api_crud import delete_obj_template, get_obj_template, get_obj_
# from app.methods.membership_person_methods import load_membership_person_obj # from app.methods.membership_person_methods import load_membership_person_obj
from app.methods.person_methods import create_person_kiss, create_update_person_obj_v4b, handle_email_person_auth_key_url, get_person_rec_list, get_person_rec_w_external_id, load_person_obj, update_person_obj, update_person_kiss from app.methods.person_methods import create_person_kiss, create_update_person_obj_v4b, handle_email_person_auth_key_url, get_person_rec_list, get_person_rec_w_external_id, load_person_obj, update_person_obj, update_person_kiss
from app.models.common_field_schema import default_num_bytes
from app.models.person_models import Person_Base from app.models.person_models import Person_Base
from app.models.response_models import Resp_Body_Base, mk_resp from app.models.response_models import Resp_Body_Base, mk_resp