Work on membership type and products and related

This commit is contained in:
Scott Idem
2022-01-13 18:13:56 -05:00
parent 771778669e
commit 539fe803af
4 changed files with 46 additions and 44 deletions

View File

@@ -123,7 +123,7 @@ class Membership_Person_Base(BaseModel):
end_buffer_on: Optional[Union[datetime.datetime,None]] end_buffer_on: Optional[Union[datetime.datetime,None]]
last_end_on: Optional[Union[datetime.datetime,None]] last_end_on: Optional[Union[datetime.datetime,None]]
flag: Optional[bool] flag: Optional[Union[bool,None]]
flag_message: Optional[str] flag_message: Optional[str]
notes: Optional[str] notes: Optional[str]

View File

@@ -25,7 +25,7 @@ router = APIRouter()
@router.post('/membership/person', response_model=Resp_Body_Base) @router.post('/membership/person', response_model=Resp_Body_Base)
async def post_membership_person_obj( async def post_membership_person_obj(
membership_person_obj: Membership_Person_Base, membership_person_obj: Membership_Person_Base,
person_id: str = Query(None, min_length=11, max_length=22), person_id: str = Query(..., min_length=11, max_length=22),
create_sub_obj: bool = False, create_sub_obj: bool = False,
fail_any: bool = True, # Fail if any thing goes wrong for sub objects fail_any: bool = True, # Fail if any thing goes wrong for sub objects
@@ -41,13 +41,14 @@ async def post_membership_person_obj(
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
person_id = membership_person_obj.person_id # if not person_id:
person_id_random = membership_person_obj.person_id_random # person_id = membership_person_obj.person_id
log.debug(f'Person ID: {person_id}, Person ID Random: {person_id_random}') # person_id_random = membership_person_obj.person_id_random
# log.debug(f'Person ID: {person_id}, Person ID Random: {person_id_random}')
# ### SECTION ### Secondary data validation # ### SECTION ### Secondary data validation
if person_id := redis_lookup_id_random(record_id_random=person_id, table_name='person'): pass if person_id := redis_lookup_id_random(record_id_random=person_id, table_name='person'): pass
elif person_id is None: pass # elif person_id is None: pass
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

View File

@@ -3,7 +3,7 @@ from fastapi import APIRouter, Body, Depends, Header, HTTPException, Query, Resp
from pydantic import BaseModel, EmailStr, Field from pydantic import BaseModel, EmailStr, Field
from typing import Dict, List, Optional, Set, Union from typing import Dict, List, Optional, Set, Union
from app.lib_general import log, logging from app.lib_general import log, logging, common_route_params, Common_Route_Params
from app.config import settings from app.config import settings
from app.db_sql import sql_insert, sql_update, sql_insert_or_update, sql_select, sql_delete, redis_lookup_id_random from app.db_sql import sql_insert, sql_update, sql_insert_or_update, sql_select, sql_delete, redis_lookup_id_random
@@ -94,67 +94,68 @@ async def get_membership_type_obj_li(
# ### BEGIN ### API Membership Type Methods ### get_account_membership_type_obj_li() ### # ### BEGIN ### API Membership Type Methods ### get_account_membership_type_obj_li() ###
# Updated 2021-07-01 # Updated 2022-01-13
@router.get('/account/{account_id}/membership/type/list', response_model=Resp_Body_Base) @router.get('/account/{account_id}/membership/type/list', response_model=Resp_Body_Base)
async def get_account_membership_type_obj_li( async def get_account_membership_type_obj_li(
account_id: str = Query(..., min_length=1, max_length=22), account_id: str = Query(..., min_length=11, max_length=22),
# product_id: Optional[str] = Query(None, min_length=1, max_length=22), # product_id: Optional[str] = Query(None, min_length=1, max_length=22),
type_level: Optional[int] = None, # type_level: Optional[int] = None,
enabled: str = 'enabled',
limit: int = 1000, # inc_address: bool = False,
inc_address: bool = False, # inc_contact: bool = False,
inc_contact: bool = False,
inc_membership_cfg: bool = False, inc_membership_cfg: bool = False,
inc_membership_person_list: bool = False, inc_membership_person_list: bool = False,
inc_organization: bool = False, # inc_organization: bool = False,
inc_person: bool = False, # inc_person: bool = False,
inc_product_list: bool = False, inc_product_list: bool = False,
inc_user: bool = False, # inc_user: bool = False,
x_account_id: str = Header(...),
by_alias: Optional[bool] = True, commons: Common_Route_Params = Depends(common_route_params),
exclude_unset: Optional[bool] = True,
response: Response = Response,
): ):
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 := redis_lookup_id_random(record_id_random=account_id, table_name='account'): pass if account_id := redis_lookup_id_random(record_id_random=account_id, table_name='account'): pass
else: return mk_resp(data=None, status_code=404) else: return mk_resp(data=None, status_code=404, response=commons.response, status_message='The account ID was invalid or not found.')
# Updated 2021-07-01 # Updated 2022-01-13
if membership_type_rec_list_result := get_membership_type_rec_list( if membership_type_rec_list_result := get_membership_type_rec_list(
account_id = account_id, account_id = account_id,
# product_id = product_id, # product_id = product_id,
type_level = type_level, # type_level = type_level,
limit = limit, limit = commons.limit,
enabled = enabled, enabled = commons.enabled,
): ):
membership_type_result_list = [] membership_type_result_list = []
for membership_type_rec in membership_type_rec_list_result: for membership_type_rec in membership_type_rec_list_result:
if load_membership_type_result := load_membership_type_obj( if load_membership_type_result := load_membership_type_obj(
membership_type_id = membership_type_rec.get('membership_type_id', None), membership_type_id = membership_type_rec.get('membership_type_id', None),
enabled = enabled, enabled = commons.enabled,
limit = limit, limit = commons.limit,
inc_address = inc_address, # inc_address = inc_address,
inc_contact = inc_contact, # inc_contact = inc_contact,
inc_membership_cfg = inc_membership_cfg, inc_membership_cfg = inc_membership_cfg,
inc_membership_person_list = inc_membership_person_list, inc_membership_person_list = inc_membership_person_list,
inc_organization = inc_organization, # inc_organization = inc_organization,
inc_person = inc_person, # inc_person = inc_person,
inc_product_list = inc_product_list, inc_product_list = inc_product_list,
inc_user = inc_user, # inc_user = inc_user,
by_alias = by_alias, # by_alias = by_alias,
exclude_unset = exclude_unset, # exclude_unset = exclude_unset,
# model_as_dict = model_as_dict, # model_as_dict = model_as_dict,
): ):
membership_type_result_list.append(load_membership_type_result) membership_type_result_list.append(load_membership_type_result)
else: else:
membership_type_result_list.append(None) membership_type_result_list.append(None)
response_data = membership_type_result_list response_data = membership_type_result_list
elif isinstance(membership_person_rec_result, list) or membership_person_rec_result is None: # Empty list or None
log.info('No results')
return mk_resp(data=False, status_code=404, response=commons.response) # Not Found
else: else:
return mk_resp(data=False, status_code=400, response=response) # Bad Request log.warning('Likely bad request')
return mk_resp(data=False, status_code=400, response=commons.response) # Bad Request
return mk_resp(data=response_data) return mk_resp(data=response_data, response=commons.response)
# ### BEGIN ### API Membership Type Methods ### get_account_membership_type_obj_li() ### # ### BEGIN ### API Membership Type Methods ### get_account_membership_type_obj_li() ###

View File

@@ -308,9 +308,9 @@ async def patch_person_obj(
# if return_obj: # if return_obj:
# person_obj = load_person_obj(person_id=person_obj_in_result) # person_obj = load_person_obj(person_id=person_obj_in_result)
# person_dict = person_obj.dict(by_alias=commons.by_alias, exclude_unset=commons.exclude_unset) # person_dict = person_obj.dict(by_alias=commons.by_alias, exclude_unset=commons.exclude_unset)
# return mk_resp(data=person_dict) # return mk_resp(data=person_dict, response=commons.response)
# else: # else:
# return mk_resp(data=person_obj_in_result) # return mk_resp(data=person_obj_in_result, response=commons.response)
# else: # else:
# return mk_resp(data=False, status_code=400, response=commons.response) # Bad Request # return mk_resp(data=False, status_code=400, response=commons.response) # Bad Request
# # ### END ### API Person ### post_person_json() ### # # ### END ### API Person ### post_person_json() ###
@@ -346,9 +346,9 @@ async def patch_person_obj(
# if return_obj: # if return_obj:
# person_obj = load_person_obj(person_id=person_id) # person_obj = load_person_obj(person_id=person_id)
# person_dict = person_obj.dict(by_alias=commons.by_alias, exclude_unset=commons.exclude_unset) # person_dict = person_obj.dict(by_alias=commons.by_alias, exclude_unset=commons.exclude_unset)
# return mk_resp(data=person_dict) # return mk_resp(data=person_dict, response=commons.response)
# else: # else:
# return mk_resp(data=person_obj_up_result) # return mk_resp(data=person_obj_up_result, response=commons.response)
# else: # else:
# return mk_resp(data=False, status_code=400, response=commons.response) # Bad Request # return mk_resp(data=False, status_code=400, response=commons.response) # Bad Request
# # ### END ### API Person ### patch_person_json() ### # # ### END ### API Person ### patch_person_json() ###
@@ -414,7 +414,7 @@ async def person_obj_external_id(
else: else:
return mk_resp(data=False, status_code=400, response=commons.response) # Bad Request return mk_resp(data=False, status_code=400, response=commons.response) # Bad Request
return mk_resp(data=response_data) return mk_resp(data=response_data, response=commons.response)
# ### END ### API Person ### person_obj_external_id() ### # ### END ### API Person ### person_obj_external_id() ###
@@ -472,7 +472,7 @@ async def lookup_email(
log.warning('Likely bad request') log.warning('Likely bad request')
return mk_resp(data=False, status_code=400, response=commons.response) # Bad Request return mk_resp(data=False, status_code=400, response=commons.response) # Bad Request
return mk_resp(data=response_data) return mk_resp(data=response_data, response=commons.response)
# ### END ### API Person ### lookup_email() ### # ### END ### API Person ### lookup_email() ###