Working on event registration and related.

This commit is contained in:
Scott Idem
2021-08-17 20:53:01 -04:00
parent 2f037290d9
commit ad9417911a
11 changed files with 294 additions and 35 deletions

View File

@@ -9,7 +9,7 @@ from app.db_sql import sql_insert, sql_update, sql_insert_or_update, sql_select,
from app.routers.api_crud import delete_obj_template, get_obj_template, get_obj_li_template, patch_obj_template, post_obj_template
from app.methods.event_person_methods import create_event_person_obj, load_event_person_obj, update_event_person_obj
from app.methods.event_person_methods import create_event_person_obj, get_event_person_rec_list, load_event_person_obj, update_event_person_obj
from app.methods.person_methods import create_person_obj, load_person_obj, update_person_obj
from app.methods.user_methods import create_user_obj, load_user_obj, update_user_obj
# from app.methods.user_load_methods import load_user_obj
@@ -29,7 +29,7 @@ router = APIRouter()
# Create a person record (with a contact record and an address for the contact record)
# Create a user record
# Create an event_person record with the new person and user IDs
@router.post('/new', response_model=Resp_Body_Base)
@router.post('/event/person/new', response_model=Resp_Body_Base)
async def post_event_person_new(
event_person_new_init: Event_Person_New_Base,
x_account_id: str = Header(...),
@@ -214,7 +214,7 @@ async def post_event_person_new(
# ### BEGIN ### API Event Person ### patch_event_person_json() ###
@router.patch('/{event_person_id}/json', response_model=Resp_Body_Base)
@router.patch('/event/person/{event_person_id}/json', response_model=Resp_Body_Base)
async def patch_event_person_json(
event_person_obj: Event_Person_Base,
event_person_id: str = Query(..., min_length=1, max_length=22),
@@ -255,7 +255,7 @@ async def patch_event_person_json(
# ### BEGIN ### API Event Person ### get_event_person_obj() ###
# Working well as of 2021-06-04. Using as a template for other routes.
@router.get('/{event_person_id}', response_model=Resp_Body_Base)
@router.get('/event/person/{event_person_id}', response_model=Resp_Body_Base)
async def get_event_person_obj(
event_person_id: str = Query(..., min_length=1, max_length=22),
enabled: str = 'enabled', # For now this covers any included objects or object lists
@@ -316,8 +316,58 @@ async def get_event_person_obj(
# ### END ### API Event ### get_event_person_obj() ###
# ### BEGIN ### API Event Person Methods ### get_event_registration_event_person_obj_li() ###
# Similar to event_registration.py: /event/registration/<id> inc_event_person_list
# Updated 2021-08-17
@router.get('/event/registration/{event_registration_id}/event/person/list', response_model=Resp_Body_Base)
async def get_event_registration_event_person_obj_li(
event_registration_id: str = Query(..., min_length=1, max_length=22),
enabled: str = 'enabled',
limit: int = 1000,
inc_address: bool = False,
inc_contact: bool = False,
inc_event_badge: bool = False,
inc_person: bool = False,
# inc_user: bool = False,
x_account_id: str = Header(...),
by_alias: Optional[bool] = True,
exclude_unset: Optional[bool] = True,
response: Response = Response,
):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if event_registration_id := redis_lookup_id_random(record_id_random=event_registration_id, table_name='event_registration'): pass
else: return mk_resp(data=None, status_code=404)
if event_person_rec_list_result := get_event_person_rec_list(
for_obj_type = 'event_registration',
for_obj_id = event_registration_id,
limit = limit,
enabled = enabled,
):
event_person_result_list = []
for event_person_rec in event_person_rec_list_result:
if load_event_person_result := load_event_person_obj(
event_person_id = event_person_rec.get('event_person_id', None),
limit = limit,
by_alias = by_alias,
exclude_unset = exclude_unset,
# model_as_dict = model_as_dict,
enabled = enabled,
inc_person = inc_person,
# inc_user = inc_user,
):
event_person_result_list.append(load_event_person_result)
else: event_person_result_list.append(None)
return mk_resp(data=event_person_result_list)
else: return mk_resp(data=None, status_code=404, response=response) # Not Found
# ### END ### API Event Person Methods ### get_event_registration_event_person_obj_li() ###
# ### BEGIN ### API Event Person Methods ### get_person_event_person_obj_li() ###
# Updated 2021-07-12
# NOT FINISHED YET
@router.get('/person/{person_id}/event/person/list', response_model=Resp_Body_Base)
async def get_person_event_person_obj_li(
person_id: str = Query(..., min_length=1, max_length=22),
@@ -348,4 +398,4 @@ async def get_person_event_person_obj_li(
else: return mk_resp(data=None, status_code=404)
return mk_resp(data=response_data)
# ### BEGIN ### API Event Person Methods ### get_person_event_person_obj_li() ###
# ### END ### API Event Person Methods ### get_person_event_person_obj_li() ###

View File

@@ -100,8 +100,11 @@ async def get_event_registration_obj(
event_registration_id: str = Query(..., min_length=1, max_length=22),
enabled: str = 'enabled', # For now this covers any included objects or object lists
limit: int = 500, # For now this covers any included objects or object lists
# inc_event_cfg: bool = False,
inc_event_person_list: bool = False,
inc_event_registration_cfg: bool = False,
inc_event_registration_list: bool = False,
# inc_event_registration_list: bool = False,
inc_person: bool = False,
x_account_id: str = Header(...),
by_alias: Optional[bool] = True,
exclude_unset: Optional[bool] = True,
@@ -115,6 +118,10 @@ async def get_event_registration_obj(
if event_registration_obj := load_event_registration_obj(
event_registration_id = event_registration_id,
inc_event_person_list = inc_event_person_list,
inc_event_registration_cfg = inc_event_registration_cfg,
# inc_event_registration_list = inc_event_registration_list,
inc_person = inc_person,
limit = limit,
by_alias = by_alias,
exclude_unset = exclude_unset,
@@ -127,15 +134,6 @@ async def get_event_registration_obj(
return mk_resp(data=event_registration_obj)
# obj_type = 'event_registration'
# result = get_obj_template(
# obj_type=obj_type,
# obj_id=event_registration_id,
# by_alias=True,
# exclude_unset=True,
# )
# return result
@router.delete('/{obj_id}', response_model=Resp_Body_Base)
async def delete_event_registration_obj(