Work on event launcher and related

This commit is contained in:
Scott Idem
2021-10-10 01:21:59 -04:00
parent 95e2a2c3f0
commit f5f09f0516
5 changed files with 184 additions and 24 deletions

View File

@@ -18,7 +18,7 @@ from app.lib_general import log, logging
from app.log import log from app.log import log
# Import the routers here first: # Import the routers here first:
from app.routers import api_crud, api, importing, account, address, archive, archive_content, contact, cont_edu_cert, cont_edu_cert_person, event, event_badge, event_badge_template, event_exhibit, event_file, event_person, event_person_detail, event_person_tracking, event_presentation, event_presenter, event_registration, event_session, flask_cfg, hosted_file, journal, journal_entry, log_client_viewing, lookup, membership_cfg, membership_group, membership_group_person, membership_person, membership_person_profile, membership_type, membership_type_person, order, order_cart, organization, page, person, post, post_comment, product, site, site_domain, user, user_person, websockets#, e_impexium from app.routers import api_crud, api, importing, account, address, archive, archive_content, contact, cont_edu_cert, cont_edu_cert_person, event, event_badge, event_badge_template, event_exhibit, event_file, event_location, event_person, event_person_detail, event_person_tracking, event_presentation, event_presenter, event_registration, event_session, flask_cfg, hosted_file, journal, journal_entry, log_client_viewing, lookup, membership_cfg, membership_group, membership_group_person, membership_person, membership_person_profile, membership_type, membership_type_person, order, order_cart, organization, page, person, post, post_comment, product, site, site_domain, user, user_person, websockets#, e_impexium
from app.db_sql import db from app.db_sql import db
@@ -132,6 +132,11 @@ app.include_router(
prefix='/event/file', prefix='/event/file',
tags=['Event File'], tags=['Event File'],
) )
app.include_router(
event_location.router,
# prefix='/event/location',
tags=['Event Location'],
)
app.include_router( app.include_router(
event_person.router, event_person.router,
# prefix='/event/person', # prefix='/event/person',

View File

@@ -12,7 +12,6 @@ from app.lib_general import log, logging
# from app.methods.event_file_methods import load_event_file_obj # from app.methods.event_file_methods import load_event_file_obj
# from app.methods.event_presentation_methods import load_event_presentation_obj # from app.methods.event_presentation_methods import load_event_presentation_obj
# from app.methods.event_presenter_methods import load_event_presenter_obj # from app.methods.event_presenter_methods import load_event_presenter_obj
# from app.methods.event_session_methods import load_event_session_obj
# from app.methods.event_track_methods import load_event_track_obj # from app.methods.event_track_methods import load_event_track_obj
from app.models.event_location_models import Event_Location_Base from app.models.event_location_models import Event_Location_Base
@@ -21,12 +20,13 @@ from app.models.event_location_models import Event_Location_Base
# ### BEGIN ### API Event Location Methods ### load_event_location_obj() ### # ### BEGIN ### API Event Location Methods ### load_event_location_obj() ###
def load_event_location_obj( def load_event_location_obj(
event_location_id: int|str, event_location_id: int|str,
enabled: str = 'enabled', # enabled, disabled, all
inc_event_device_list: bool = False, inc_event_device_list: bool = False,
inc_event_file_list: bool = False, inc_event_file_list: bool = False,
inc_event_presentation_list: bool = False, inc_event_presentation_list: bool = False,
inc_event_presenter_list: bool = False, inc_event_presenter_list: bool = False,
inc_event_session_list: bool = False, inc_event_session_list: bool = False,
enabled: str = 'enabled', # enabled, disabled, all
hidden: str = 'hidden', # hidden, not_hidden, all
limit: int = 1000, limit: int = 1000,
by_alias: bool = True, by_alias: bool = True,
exclude_unset: bool = True, exclude_unset: bool = True,
@@ -55,15 +55,6 @@ def load_event_location_obj(
#account_id = event_location_rec.get('account_id', None) #account_id = event_location_rec.get('account_id', None)
event_id = event_location_rec.get('event_id', None) event_id = event_location_rec.get('event_id', None)
# if inc_event and event_id:
# if event_obj := load_event_obj(
# event_id=event_id,
# enabled=enabled,
# ):
# event_location_obj.event = event_obj.dict(by_alias=True, exclude_unset=True)
# else:
# event_location_obj.event = None
# if inc_event_device_list: pass # if inc_event_device_list: pass
# if inc_event_file_list: pass # if inc_event_file_list: pass
@@ -117,6 +108,47 @@ def load_event_location_obj(
if inc_event_presenter_list: pass if inc_event_presenter_list: pass
# Updated 2021-10-09
if inc_event_session_list:
log.info('Need to include event session list...')
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
from app.methods.event_session_methods import get_event_session_rec_list, load_event_session_obj
if event_session_rec_list_result := get_event_session_rec_list(
event_location_id = event_location_id,
enabled = enabled, # enabled, disabled, all
approved = 'all', # approve(d), not_approved, all
hidden = hidden, # hidden, not_hidden, all
review = 'all', # ready, not_ready, all
limit = limit,
):
event_session_result_list = []
for event_session_rec in event_session_rec_list_result:
if load_event_session_result := load_event_session_obj(
event_session_id = event_session_rec.get('event_session_id', None),
enabled = enabled,
limit = limit,
# inc_event_file_list = inc_event_file_list,
# inc_event_presentation_list = inc_event_presentation_list,
# inc_event_presenter_cat = inc_event_presenter_cat,
# inc_event_presenter_list = inc_event_presenter_list,
# inc_person = inc_person,
# inc_poc_event_person = inc_poc_event_person,
by_alias = by_alias,
exclude_unset = exclude_unset,
# model_as_dict = model_as_dict,
):
event_session_result_list.append(load_event_session_result)
else:
event_session_result_list.append(None)
log.debug(event_session_result_list)
event_location_obj.event_session_list = event_session_result_list
elif isinstance(event_session_rec_list_result, list):
event_location_obj.event_session_list = []
else:
event_location_obj.event_session_list = None
if model_as_dict: if model_as_dict:
return event_location_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset) # pylint: disable=no-member return event_location_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset) # pylint: disable=no-member
else: else:
@@ -129,7 +161,7 @@ def load_event_location_obj(
def get_event_location_rec_list( def get_event_location_rec_list(
event_id: str, event_id: str,
enabled: str = 'enabled', # enabled, disabled, all enabled: str = 'enabled', # enabled, disabled, all
hidden: str = 'hidden', # hidden, not_hidden, all hidden: str = 'not_hidden', # hidden, not_hidden, all
limit: int = 100, limit: int = 100,
) -> list|bool: ) -> list|bool:
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL

View File

@@ -270,7 +270,9 @@ def load_event_session_obj(
# ### BEGIN ### API Event Session Methods ### get_event_session_rec_list() ### # ### BEGIN ### API Event Session Methods ### get_event_session_rec_list() ###
def get_event_session_rec_list( def get_event_session_rec_list(
event_id: str, event_id: str = None,
event_location_id: str = None,
event_track_id: str = None,
enabled: str = 'enabled', # enabled, disabled, all enabled: str = 'enabled', # enabled, disabled, all
approved: str = 'all', # approved, not_approved, all approved: str = 'all', # approved, not_approved, all
hidden: str = 'not_hidden', # hidden, not_hidden, all hidden: str = 'not_hidden', # hidden, not_hidden, all
@@ -281,12 +283,19 @@ def get_event_session_rec_list(
log.debug(locals()) log.debug(locals())
if event_id := redis_lookup_id_random(record_id_random=event_id, table_name='event'): pass if event_id := redis_lookup_id_random(record_id_random=event_id, table_name='event'): pass
else: return False # else: return False
if event_location_id := redis_lookup_id_random(record_id_random=event_location_id, table_name='event_location'): pass
# else: return False
data = {} data = {}
data[f'event_id'] = event_id
sql_where_event_id = f'`event_session`.event_id = :event_id' if event_id:
data[f'event_id'] = event_id
sql_where_type_id = f'`event_session`.event_id = :event_id'
elif event_location_id:
data[f'event_location_id'] = event_location_id
sql_where_type_id = f'`event_session`.event_location_id = :event_location_id'
if review in ['ready', 'not_ready', 'all']: if review in ['ready', 'not_ready', 'all']:
if review == 'ready': if review == 'ready':
@@ -338,7 +347,7 @@ def get_event_session_rec_list(
SELECT `event_session`.id AS 'event_session_id', `event_session`.id_random AS 'event_session_id_random' SELECT `event_session`.id AS 'event_session_id', `event_session`.id_random AS 'event_session_id_random'
FROM `event_session` AS `event_session` FROM `event_session` AS `event_session`
WHERE WHERE
{sql_where_event_id} {sql_where_type_id}
{sql_review} {sql_review}
{sql_approved} {sql_approved}
{sql_hidden} {sql_hidden}

View File

@@ -0,0 +1,114 @@
import datetime
from fastapi import APIRouter, Body, Depends, Header, HTTPException, Query, Response, status
from pydantic import BaseModel, EmailStr, Field
from typing import Dict, List, Optional, Set, Union
from app.lib_general import log, logging
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.routers.api_crud import delete_obj_template, get_obj_template, get_obj_li_template, patch_obj_template, post_obj_template
from app.methods.event_location_methods import get_event_location_rec_list, load_event_location_obj
from app.models.event_location_models import Event_Location_Base
from app.models.response_models import Resp_Body_Base, mk_resp
router = APIRouter()
# ### BEGIN ### API Event Location ### get_event_location_obj() ###
# Updated 2021-10-09
@router.get('/event/location/{event_location_id}', response_model=Resp_Body_Base)
async def get_event_location_obj(
event_location_id: str = Query(..., min_length=11, max_length=22),
inc_event_file_list: bool = False,
inc_event_presentation_list: bool = False,
inc_event_presenter_list: bool = False,
inc_event_session_list: bool = False,
enabled: str = 'enabled', # enabled, disabled, all
hidden: str = 'not_hidden', # hidden, not_hidden, all
limit: int = 500,
x_account_id: str = Header(...),
by_alias: Optional[bool] = True,
exclude_unset: Optional[bool] = True,
response: Response = Response,
):
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if event_location_id := redis_lookup_id_random(record_id_random=event_location_id, table_name='event_location'): pass
else: return mk_resp(data=None, status_code=404, response=response)
if event_location_obj := load_event_location_obj(
event_location_id = event_location_id,
inc_event_file_list = inc_event_file_list,
inc_event_presentation_list = inc_event_presentation_list,
inc_event_presenter_list = inc_event_presenter_list,
inc_event_session_list = inc_event_session_list,
enabled = enabled,
hidden = hidden,
limit = limit,
):
event_location_dict = event_location_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset)
pass
else:
return mk_resp(data=False, status_code=400, response=response) # Bad Request
return mk_resp(data=event_location_dict, response=response)
#return mk_resp(data=event_location_obj)
# ### END ### API Event Location ### get_event_location_obj() ###
# ### BEGIN ### API Event Location ### get_event_obj_event_location_list() ###
# Updated 2021-10-09
@router.get('/event/{event_id}/event/location/list', response_model=Resp_Body_Base)
async def get_event_obj_event_location_list(
event_id: str = Query(..., min_length=11, max_length=22),
enabled: str = 'enabled',
hidden: str = 'not_hidden',
limit: int = 500,
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 event_id := redis_lookup_id_random(record_id_random=event_id, table_name='event'): 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-07-28
if event_location_rec_list_result := get_event_location_rec_list(
event_id = event_id,
enabled = enabled,
hidden = hidden,
limit = limit,
):
event_location_result_list = []
for event_location_rec in event_location_rec_list_result:
if load_event_location_result := load_event_location_obj(
event_location_id = event_location_rec.get('event_location_id', None),
limit = limit,
by_alias = by_alias,
exclude_unset = exclude_unset,
# model_as_dict = model_as_dict,
enabled = enabled,
):
event_location_result_list.append(load_event_location_result)
else:
event_location_result_list.append(None)
response_data = event_location_result_list
else:
return mk_resp(data=False, status_code=400, response=response) # Bad Request
return mk_resp(data=response_data, response=response)
# ### END ### API Event Location ### get_event_obj_event_location_list() ###

View File

@@ -45,13 +45,13 @@ async def upload_files(
account_id_random = account_id # This is for the account random str ID account_id_random = account_id # This is for the account random str ID
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: else:
return mk_resp(data=None, status_code=400) return mk_resp(data=None, status_code=400, response=response)
link_to_type = link_to_type link_to_type = link_to_type
link_to_id_random = link_to_id # This is for the object random str ID link_to_id_random = link_to_id # This is for the object random str ID
if link_to_id := redis_lookup_id_random(record_id_random=link_to_id, table_name=link_to_type): pass if link_to_id := redis_lookup_id_random(record_id_random=link_to_id, table_name=link_to_type): pass
else: else:
return mk_resp(data=None, status_code=400) return mk_resp(data=None, status_code=400, response=response)
hosted_file_list = [] hosted_file_list = []
for file_obj in file_list: for file_obj in file_list:
@@ -145,7 +145,7 @@ async def upload_files(
log.debug('The hosted_file_link was probably created fine though.') log.debug('The hosted_file_link was probably created fine though.')
log.debug(hosted_file_list) log.debug(hosted_file_list)
return mk_resp(data=hosted_file_list) return mk_resp(data=hosted_file_list, response=response)
# ### END ### API Hosted File Route ### upload_files() ### # ### END ### API Hosted File Route ### upload_files() ###
@@ -359,7 +359,7 @@ async def upload_files_fake(
log.debug('The hosted_file_link was probably created fine though.') log.debug('The hosted_file_link was probably created fine though.')
log.debug(hosted_file_list) log.debug(hosted_file_list)
return mk_resp(data=hosted_file_list) return mk_resp(data=hosted_file_list, response=response)
# ### END ### API Hosted File Route ### upload_files_fake() ### # ### END ### API Hosted File Route ### upload_files_fake() ###
@@ -407,7 +407,7 @@ async def get_hosted_file_obj(
if hosted_file_id := redis_lookup_id_random(record_id_random=hosted_file_id, table_name='hosted_file'): pass if hosted_file_id := redis_lookup_id_random(record_id_random=hosted_file_id, table_name='hosted_file'): pass
else: else:
return mk_resp(data=None, status_code=404) return mk_resp(data=None, status_code=404, response=response)
if hosted_file_obj := load_hosted_file_obj( if hosted_file_obj := load_hosted_file_obj(
hosted_file_id = hosted_file_id, hosted_file_id = hosted_file_id,
@@ -418,6 +418,6 @@ async def get_hosted_file_obj(
else: else:
return mk_resp(data=False, status_code=400, response=response) # Bad Request return mk_resp(data=False, status_code=400, response=response) # Bad Request
return mk_resp(data=hosted_file_dict) return mk_resp(data=hosted_file_dict, response=response)
#return mk_resp(data=hosted_file_obj) #return mk_resp(data=hosted_file_obj)
# ### END ### API Hosted File ### get_hosted_file_obj() ### # ### END ### API Hosted File ### get_hosted_file_obj() ###