Work on event meeting list end point, methods, and models

This commit is contained in:
Scott Idem
2021-12-13 15:12:54 -05:00
parent b22a84f054
commit 59e96d7d3c
4 changed files with 460 additions and 9 deletions

View File

@@ -9,9 +9,9 @@ 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_methods import get_event_rec_list, load_event_obj, update_event_obj
from app.methods.event_methods import get_event_rec_list, get_event_meeting_rec_list, load_event_obj, update_event_obj
from app.models.event_models import Event_Base
from app.models.event_models import Event_Base, Event_Meeting_Flat_Base
from app.models.response_models import Resp_Body_Base, mk_resp
@@ -306,13 +306,14 @@ async def get_event_obj(
# ### BEGIN ### API Event ### get_account_obj_event_list() ###
# Updated 2021-09-28
# Updated 2021-12-13
@router.get('/account/{account_id}/event/list', response_model=Resp_Body_Base)
async def get_account_obj_event_list(
account_id: str = Query(..., min_length=11, max_length=22),
limit: int = 500,
enabled: str = 'enabled',
archived: str = 'not_archived', # archived, not_archived, all
hidden: str = 'not_hidden', # hidden, not_hidden, all
conference: bool = False, # Events with badges, sessions, presentations, presenters, registration, etc
# inc_account_cfg: bool = False,
inc_address: bool = False, # Under event and under contact
@@ -357,12 +358,13 @@ async def get_account_obj_event_list(
response_data = None
# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
# Updated 2021-09-28
# Updated 2021-12-13
if event_rec_list_result := get_event_rec_list(
account_id = account_id,
limit = limit,
enabled = enabled,
archived = archived,
hidden = hidden,
conference = conference,
):
event_result_list = []
@@ -408,6 +410,56 @@ async def get_account_obj_event_list(
else:
return mk_resp(data=False, status_code=400, response=response) # Bad Request
log.debug(response_data)
return mk_resp(data=response_data, response=response)
# ### END ### API Event ### get_account_obj_event_list() ###
# ### BEGIN ### API Event ### get_account_obj_event_meeting_list_flat() ###
# Updated 2021-12-13
@router.get('/account/{account_id}/event/meeting_list_flat', response_model=Resp_Body_Base)
async def get_account_obj_event_meeting_list_flat(
account_id: str = Query(..., min_length=11, max_length=22),
limit: int = 500,
enabled: str = 'enabled',
archived: str = 'not_archived', # archived, not_archived, all
hidden: str = 'not_hidden', # hidden, not_hidden, all
x_account_id: str = Header(...),
by_alias: Optional[bool] = True,
exclude_unset: Optional[bool] = True,
response: Response = Response,
):
log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
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, response=response)
response_data = None
# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
# Updated 2021-12-13
if event_meeting_rec_list_result := get_event_meeting_rec_list(
account_id = account_id,
limit = limit,
enabled = enabled,
archived = archived,
hidden = hidden,
):
event_result_list = []
for event_rec in event_meeting_rec_list_result:
try:
event_obj = Event_Meeting_Flat_Base(**event_rec)
log.debug(event_obj)
except ValidationError as e:
log.error(e.json())
return False
event_result_list.append(event_obj)
response_data = event_result_list
else:
return mk_resp(data=False, status_code=404, response=response) # Not Found
log.debug(response_data)
return mk_resp(data=response_data, response=response)
# ### END ### API Event ### get_account_obj_event_list() ###