General code clean up. More work on event tracking related

This commit is contained in:
Scott Idem
2022-02-15 16:05:29 -05:00
parent 003ffb4adf
commit df6e860620
8 changed files with 208 additions and 111 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_lvl: int = logging.WARNING, # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log_lvl: int = logging.WARNING, # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
): ) -> None|bool|int:
log.setLevel(log_lvl) log.setLevel(log_lvl)
if sql: if sql:
@@ -623,10 +623,10 @@ def sql_select(
log.debug('Successfully executed the SQL on the first try.') log.debug('Successfully executed the SQL on the first try.')
pass pass
#log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(f'Row count: {result.rowcount}') log.debug(f'Row count: {result.rowcount}')
#log.debug(vars(result)) # log.debug(vars(result))
#log.debug(dir(result)) # log.debug(dir(result))
# NOTE: as_dict defaults to True for this function # NOTE: as_dict defaults to True for this function
# NOTE: as_list defaults to False for this function # NOTE: as_list defaults to False for this function
@@ -679,7 +679,7 @@ def sql_select(
# ### BEGIN ### Core Help CRUD ### sql_delete() ### # ### BEGIN ### Core Help CRUD ### sql_delete() ###
# The catch all SQL DELETE function - STI 2021-02-17 # The catch all SQL DELETE function - STI 2021-02-17
# This one does it all for SQL DELETE queries # This one does it all for SQL DELETE queries
# Updated 2021-09-07 # Updated 2022-02-15
@logger_reset @logger_reset
def sql_delete( def sql_delete(
table_name: str|None = None, table_name: str|None = None,
@@ -689,8 +689,8 @@ def sql_delete(
field_value = None, field_value = None,
sql: str|None = None, sql: str|None = None,
data: dict|None = None, data: dict|None = None,
log_lvl: int = logging.WARNING, # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log_lvl: int = logging.DEBUG, # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
): ) -> None|bool:
log.setLevel(log_lvl) log.setLevel(log_lvl)
if table_name and (record_id or record_id_random) and not (field_name or field_value or sql or data): if table_name and (record_id or record_id_random) and not (field_name or field_value or sql or data):
@@ -762,7 +762,7 @@ def sql_delete(
# return False # return False
try: try:
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
if data: if data:
log.info('Executing with SQL (DELETE) statement and data...') log.info('Executing with SQL (DELETE) statement and data...')
result = db.execute(sql, data) result = db.execute(sql, data)
@@ -791,7 +791,7 @@ def sql_delete(
db.engine.dispose() db.engine.dispose()
log.info('Now trying the query again...') log.info('Now trying the query again...')
try: try:
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
if data: if data:
log.info('2x Executing with SQL statement and data...') log.info('2x Executing with SQL statement and data...')
result = db.execute(sql, data) result = db.execute(sql, data)
@@ -826,8 +826,20 @@ def sql_delete(
log.info('Successfully executed the SQL on the first try.') log.info('Successfully executed the SQL on the first try.')
pass pass
# NOTE: Need to deal with 0 rows affected when the WHERE clause was not satisfied and there was no error. # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
return True # Successful log.debug(f'Row count: {result.rowcount}')
# log.debug(vars(result))
# log.debug(dir(result))
if result.rowcount == 1:
log.info(f'Deleted one record. Returning True.')
return True # Successful
elif result.rowcount > 1:
log.info(f'Deleted {result.rowcount} records. Returning True.')
return True # Successful
else:
log.info('No records deleted. Returning None.')
return None # Successful even though no results
# ### END ### Core Help CRUD ### sql_delete() ### # ### END ### Core Help CRUD ### sql_delete() ###

View File

@@ -137,6 +137,11 @@ app.include_router(
prefix='/event/exhibit', prefix='/event/exhibit',
tags=['Event Exhibit'], tags=['Event Exhibit'],
) )
app.include_router(
event_exhibit_tracking.router,
# prefix='/event/exhibit/tracking',
tags=['Event Exhibit Tracking'],
)
app.include_router( app.include_router(
event_file.router, event_file.router,
prefix='/event/file', prefix='/event/file',

View File

@@ -4,7 +4,7 @@ import datetime
from typing import Dict, List, Optional, Set, Union from typing import Dict, List, Optional, Set, Union
from pydantic import BaseModel, EmailStr, Field, PrivateAttr, ValidationError, validator from pydantic import BaseModel, EmailStr, Field, PrivateAttr, ValidationError, validator
from app.db_sql import get_account_id_w_for_type_id, redis_lookup_id_random, sql_insert, sql_select, sql_update from app.db_sql import get_account_id_w_for_type_id, redis_lookup_id_random, sql_delete, sql_insert, sql_select, sql_update
from app.lib_general import log, logging, logger_reset from app.lib_general import log, logging, logger_reset
from app.models.common_field_schema import default_num_bytes from app.models.common_field_schema import default_num_bytes
@@ -15,7 +15,7 @@ from app.models.event_exhibit_tracking_models import Event_Exhibit_Tracking_Base
# Updated 2022-02-15 # Updated 2022-02-15
@logger_reset @logger_reset
def create_event_exhibit_tracking_obj( def create_event_exhibit_tracking_obj(
exhibit_id: int|str, event_exhibit_id: int|str,
event_exhibit_tracking_dict_obj: Event_Exhibit_Tracking_Base, event_exhibit_tracking_dict_obj: Event_Exhibit_Tracking_Base,
event_badge_id: int = None, event_badge_id: int = None,
event_person_id: int = None, event_person_id: int = None,
@@ -30,7 +30,7 @@ def create_event_exhibit_tracking_obj(
log.debug(type(event_exhibit_tracking_dict_obj)) log.debug(type(event_exhibit_tracking_dict_obj))
if isinstance(event_exhibit_tracking_dict_obj, dict): if isinstance(event_exhibit_tracking_dict_obj, dict):
event_exhibit_tracking_dict = event_exhibit_tracking_dict_obj event_exhibit_tracking_dict = event_exhibit_tracking_dict_obj
event_exhibit_tracking_dict['event_id'] = event_id event_exhibit_tracking_dict['event_exhibit_id'] = event_exhibit_id
event_exhibit_tracking_dict['event_badge_id'] = event_badge_id event_exhibit_tracking_dict['event_badge_id'] = event_badge_id
event_exhibit_tracking_dict['event_person_id'] = event_person_id event_exhibit_tracking_dict['event_person_id'] = event_person_id
try: try:
@@ -40,7 +40,7 @@ def create_event_exhibit_tracking_obj(
return False return False
else: else:
event_exhibit_tracking_obj = event_exhibit_tracking_dict_obj event_exhibit_tracking_obj = event_exhibit_tracking_dict_obj
event_exhibit_tracking_obj.event_id = event_id event_exhibit_tracking_obj.event_exhibit_id = event_exhibit_id
event_exhibit_tracking_obj.event_badge_id = event_badge_id event_exhibit_tracking_obj.event_badge_id = event_badge_id
event_exhibit_tracking_obj.event_person_id = event_person_id event_exhibit_tracking_obj.event_person_id = event_person_id
log.debug(event_exhibit_tracking_obj) log.debug(event_exhibit_tracking_obj)
@@ -53,17 +53,13 @@ def create_event_exhibit_tracking_obj(
table_name = 'event_exhibit_tracking', table_name = 'event_exhibit_tracking',
rm_id_random = True, rm_id_random = True,
id_random_length = default_num_bytes id_random_length = default_num_bytes
): pass ):
event_exhibit_tracking_id = event_exhibit_tracking_dict_in_result
log.info(f'Returning the new Event Exhibit Tracking ID: {event_exhibit_tracking_id}')
return event_exhibit_tracking_id
else: else:
log.warning(f'Event Exhibit Tracking not created.') log.warning(f'Event Exhibit Tracking not created.')
return False return event_exhibit_tracking_dict_in_result # False or None
log.debug(event_exhibit_tracking_dict_in_result)
event_exhibit_tracking_id = event_exhibit_tracking_dict_in_result
log.info(f'Returning the new Event Exhibit Tracking ID: {event_exhibit_tracking_id}')
return event_exhibit_tracking_id
# ### END ### API Event Exhibit Tracking Methods ### create_event_exhibit_tracking_obj() ### # ### END ### API Event Exhibit Tracking Methods ### create_event_exhibit_tracking_obj() ###
@@ -100,17 +96,37 @@ def update_event_exhibit_tracking_obj(
data = event_exhibit_tracking_dict, data = event_exhibit_tracking_dict,
table_name = 'event_exhibit_tracking', table_name = 'event_exhibit_tracking',
rm_id_random = True, rm_id_random = True,
): pass ):
log.info(f'Updated the Event Exhibit Tracking ID: {event_exhibit_tracking_id}')
return event_exhibit_tracking_id
else: else:
log.warning(f'Event Exhibit Tracking not updated.') log.warning(f'Event Exhibit Tracking not updated.')
return False return event_exhibit_tracking_dict_up_result # False or None
log.debug(event_exhibit_tracking_dict_up_result)
return True
# ### END ### API Event Exhibit Tracking Methods ### update_event_exhibit_tracking_obj() ### # ### END ### API Event Exhibit Tracking Methods ### update_event_exhibit_tracking_obj() ###
# ### BEGIN ### API Event Exhibit Tracking Methods ### delete_event_exhibit_tracking_obj() ###
# Updated 2022-02-15
@logger_reset
def remove_event_exhibit_tracking_obj(
event_exhibit_tracking_id: int,
log_lvl: int = logging.DEBUG, # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
) -> bool|None:
log.setLevel(log_lvl)
if event_exhibit_tracking_dict_del_result := sql_delete(
table_name = 'event_exhibit_tracking',
record_id = event_exhibit_tracking_id,
log_lvl = log_lvl,
):
log.info(f'Event Exhibit Tracking was deleted.')
return True
else:
log.warning(f'Event Exhibit Tracking not deleted.')
return event_exhibit_tracking_dict_del_result # False or None
# ### END ### API Event Exhibit Tracking Methods ### delete_event_exhibit_tracking_obj() ###
# ### BEGIN ### API Event Exhibit Tracking Methods ### load_event_exhibit_tracking_obj() ### # ### BEGIN ### API Event Exhibit Tracking Methods ### load_event_exhibit_tracking_obj() ###
# Updated 2022-02-14 # Updated 2022-02-14
@logger_reset @logger_reset

View File

@@ -69,7 +69,7 @@ class Event_Exhibit_Tracking_Base(BaseModel):
event_exhibit_name: Optional[str] event_exhibit_name: Optional[str]
# Including other related objects # Including other related objects
event_badge: Optional[Union[Event_Badge_Base, None]] # event_badge: Optional[Union[Event_Badge_Base, None]]
event_person: Optional[Union[Event_Person_Base, None]] event_person: Optional[Union[Event_Person_Base, None]]
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now) _processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)

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.DEBUG) log.setLevel(logging.INFO)
log.debug(locals()) log.debug(locals())
id_random: Optional[str] = Field( id_random: Optional[str] = Field(

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.DEBUG) log.setLevel(logging.INFO)
log.debug(locals()) log.debug(locals())
id_random: Optional[str] = Field( id_random: Optional[str] = Field(

View File

@@ -10,7 +10,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.routers.api_crud import delete_obj_template, get_obj_template, get_obj_li_template, patch_obj_template, post_obj_template
from app.methods.event_exhibit_tracking_methods import create_event_exhibit_tracking_obj, get_event_exhibit_tracking_rec_list, load_event_exhibit_tracking_obj, update_event_exhibit_tracking_obj from app.methods.event_exhibit_tracking_methods import create_event_exhibit_tracking_obj, remove_event_exhibit_tracking_obj, get_event_exhibit_tracking_rec_list, load_event_exhibit_tracking_obj, update_event_exhibit_tracking_obj
from app.models.event_exhibit_tracking_models import Event_Exhibit_Tracking_Base from app.models.event_exhibit_tracking_models import Event_Exhibit_Tracking_Base
from app.models.response_models import Resp_Body_Base, mk_resp from app.models.response_models import Resp_Body_Base, mk_resp
@@ -19,13 +19,18 @@ from app.models.response_models import Resp_Body_Base, mk_resp
router = APIRouter() router = APIRouter()
# ### BEGIN ### API Event Exhibit Tracking ### post_event_exhibit_tracking_obj() ###
# Updated 2022-02-15
@router.post('/event/exhibit/tracking', response_model=Resp_Body_Base) @router.post('/event/exhibit/tracking', response_model=Resp_Body_Base)
async def post_event_exhibit_tracking_obj( async def post_event_exhibit_tracking_obj(
event_exhibit_tracking_obj: Event_Exhibit_Tracking_Base,
event_exhibit_id: str = Query(..., min_length=11, max_length=22), event_exhibit_id: str = Query(..., min_length=11, max_length=22),
event_exhibit_tracking_obj: Event_Exhibit_Tracking_Base = {},
event_badge_id: str = Query(None, min_length=11, max_length=22), event_badge_id: str = Query(None, min_length=11, max_length=22),
event_person_id: str = Query(None, min_length=11, max_length=22), event_person_id: str = Query(None, min_length=11, max_length=22),
inc_event_badge: bool = False,
inc_event_exhibit: bool = False,
inc_event_person: bool = False,
return_obj: bool = True, return_obj: bool = True,
commons: Common_Route_Params = Depends(common_route_params), commons: Common_Route_Params = Depends(common_route_params),
@@ -43,55 +48,89 @@ async def post_event_exhibit_tracking_obj(
else: return mk_resp(data=None, status_code=404, response=commons.response, status_message='The Event Badge ID was invalid or not found.') else: return mk_resp(data=None, status_code=404, response=commons.response, status_message='The Event Badge ID was invalid or not found.')
if event_person_id := redis_lookup_id_random(record_id_random=event_person_id, table_name='event_person'): pass if event_person_id := redis_lookup_id_random(record_id_random=event_person_id, table_name='event_person'): pass
# elif event_person_id is None: pass elif event_person_id is None: pass
else: return mk_resp(data=None, status_code=404, response=commons.response, status_message='The Event Person ID was invalid or not found.') else: return mk_resp(data=None, status_code=404, response=commons.response, status_message='The Event Person ID was invalid or not found.')
if event_badge_id or event_person_id: pass
else: return mk_resp(data=None, status_code=404, response=commons.response, status_message='The Event Badge ID or Event Person ID is required.')
# ### SECTION ### Process data # ### SECTION ### Process data
if membership_person_id := create_membership_person_obj( if event_exhibit_tracking_id := create_event_exhibit_tracking_obj(
account_id = commons.x_account_id, event_exhibit_id = event_exhibit_id,
person_id = person_id, event_exhibit_tracking_dict_obj = event_exhibit_tracking_obj,
membership_person_dict_obj = membership_person_obj, event_badge_id = event_badge_id,
event_person_id = event_person_id,
): pass ): pass
else: return mk_resp(data=False, status_code=400, response=commons.response, status_message='The membership person was not created. Check the field names and data types.') # Bad Request elif event_exhibit_tracking_id is None:
return mk_resp(data=None, status_code=200, response=commons.response, status_message='Not created. Likely duplicate entry. Returning None.') # Success
else:
log.warning('Likely bad request')
return mk_resp(data=False, status_code=400, response=commons.response, status_message='Not created. Something failed while processing the data. Check the field names and data types.') # Bad Request
obj_type = 'event_exhibit_tracking' # ### SECTION ### Return successful results
event_exhibit_tracking_obj_data_dict = event_exhibit_tracking_obj.dict(by_alias=False, exclude_unset=True) if return_obj:
result = post_obj_template( event_exhibit_tracking_obj = load_event_exhibit_tracking_obj(
obj_type = obj_type, event_exhibit_tracking_id = event_exhibit_tracking_id,
data = event_exhibit_tracking_obj_data_dict, inc_event_badge = inc_event_badge,
return_obj = True, inc_event_exhibit = inc_event_exhibit,
by_alias = True, inc_event_person = inc_event_person,
exclude_unset = True, ).dict(by_alias=commons.by_alias, exclude_unset=commons.exclude_unset)
) data = event_exhibit_tracking_obj
return result else:
event_exhibit_tracking_id_random = get_id_random(record_id=event_exhibit_tracking_id, table_name='event_exhibit_tracking')
data = {}
data['event_exhibit_tracking_id'] = event_exhibit_tracking_id
data['event_exhibit_tracking_id_random'] = person_id_random
return mk_resp(data=data, response=commons.response)
# ### END ### API Event Exhibit Tracking ### post_event_exhibit_tracking_obj() ###
# ### BEGIN ### API Event Exhibit Tracking ### patch_event_exhibit_tracking_obj() ###
# Updated 2022-02-15
@router.patch('/event/exhibit/tracking/{event_exhibit_tracking_id}', response_model=Resp_Body_Base) @router.patch('/event/exhibit/tracking/{event_exhibit_tracking_id}', response_model=Resp_Body_Base)
async def patch_event_exhibit_tracking_obj( async def patch_event_exhibit_tracking_obj(
event_exhibit_tracking_obj: Event_Exhibit_Tracking_Base, event_exhibit_tracking_obj: Event_Exhibit_Tracking_Base,
event_exhibit_tracking_id: str = Query(..., min_length=1, max_length=22), event_exhibit_tracking_id: str = Query(..., min_length=11, max_length=22),
x_account_id: Optional[str] = Header(..., ),
return_obj: Optional[bool] = True, inc_event_badge: bool = False,
by_alias: Optional[bool] = True, inc_event_exhibit: bool = False,
exclude_unset: Optional[bool] = True, inc_event_person: bool = False,
response: Response = Response, return_obj: bool = True,
commons: Common_Route_Params = Depends(common_route_params),
): ):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
obj_type = 'event_exhibit_tracking' # ### SECTION ### Secondary data validation
event_exhibit_tracking_obj_data_dict = event_exhibit_tracking_obj.dict(by_alias=False, exclude_unset=True) event_exhibit_tracking_id_random = event_exhibit_tracking_id # This is used later for the response data
event_exhibit_tracking_obj_data_dict['id'] = redis_lookup_id_random(record_id_random=event_exhibit_tracking_id, table_name=obj_type) if event_exhibit_tracking_id := redis_lookup_id_random(record_id_random=event_exhibit_tracking_id, table_name='event_exhibit_tracking'): pass
event_exhibit_tracking_obj_data_dict['id_random'] = event_exhibit_tracking_id else: return mk_resp(data=None, status_code=404, response=commons.response, status_message='The Event Exhibit Tracking ID was invalid or not found.')
result = patch_obj_template(
obj_type = obj_type, # ### SECTION ### Process data
data = event_exhibit_tracking_obj_data_dict, if event_exhibit_tracking_update_result := update_event_exhibit_tracking_obj(
obj_id = event_exhibit_tracking_id, event_exhibit_tracking_id = event_exhibit_tracking_id,
return_obj = True, event_exhibit_tracking_dict_obj = event_exhibit_tracking_obj,
by_alias = True, ): pass
exclude_unset = True, else:
) log.warning('Likely bad request')
return result return mk_resp(data=False, status_code=400, response=commons.response, status_message='Not updated. Something failed while processing the data. Check the field names and data types.') # Bad Request
# ### SECTION ### Return successful results
if return_obj:
event_exhibit_tracking_obj = load_event_exhibit_tracking_obj(
event_exhibit_tracking_id = event_exhibit_tracking_id,
inc_event_badge = inc_event_badge,
inc_event_exhibit = inc_event_exhibit,
inc_event_person = inc_event_person,
).dict(by_alias=commons.by_alias, exclude_unset=commons.exclude_unset)
data = event_exhibit_tracking_obj
else:
data = {}
data['event_exhibit_tracking_id'] = event_exhibit_tracking_id
data['event_exhibit_tracking_id_random'] = event_exhibit_tracking_id_random
return mk_resp(data=data, response=commons.response)
# ### END ### API Event Exhibit Tracking ### patch_event_exhibit_tracking_obj() ###
@router.get('/event/exhibit/tracking/list', response_model=Resp_Body_Base) @router.get('/event/exhibit/tracking/list', response_model=Resp_Body_Base)
@@ -117,34 +156,52 @@ async def get_event_exhibit_tracking_obj_li(
return result return result
@router.get('/event/exhibit/tracking/{obj_id}', response_model=Resp_Body_Base) # ### BEGIN ### API Event Exhibit Tracking ### get_event_exhibit_tracking_obj() ###
# Updated 2022-02-15
@router.get('/event/exhibit/tracking/{event_exhibit_tracking_id}', response_model=Resp_Body_Base)
async def get_event_exhibit_tracking_obj( async def get_event_exhibit_tracking_obj(
obj_id: str = Query(..., min_length=1, max_length=22), event_exhibit_tracking_id: str = Query(..., min_length=11, max_length=22),
x_account_id: str = Header(...),
by_alias: Optional[bool] = True, inc_event_badge: bool = False,
exclude_unset: Optional[bool] = True, inc_event_exhibit: bool = False,
response: Response = Response, inc_event_person: bool = False,
return_obj: bool = True,
commons: Common_Route_Params = Depends(common_route_params),
): ):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
obj_type = 'event_exhibit_tracking' # ### SECTION ### Secondary data validation
result = get_obj_template( event_exhibit_tracking_id_random = event_exhibit_tracking_id # This is used later for the response data
obj_type=obj_type, if event_exhibit_tracking_id := redis_lookup_id_random(record_id_random=event_exhibit_tracking_id, table_name='event_exhibit_tracking'): pass
obj_id=obj_id, else: return mk_resp(data=None, status_code=404, response=commons.response, status_message='The Event Exhibit Tracking ID was invalid or not found.')
by_alias=True,
exclude_unset=True, if event_exhibit_tracking_obj_result := load_event_exhibit_tracking_obj(
) event_exhibit_tracking_id = event_exhibit_tracking_id,
return result inc_event_badge = inc_event_badge,
inc_event_exhibit = inc_event_exhibit,
inc_event_person = inc_event_person,
):
log.info('Loading successful. Returning result')
return mk_resp(data=event_exhibit_tracking_obj_result, response=commons.response) # Success
elif isinstance(event_exhibit_tracking_obj_result, list) or event_exhibit_tracking_obj_result is None: # Empty list or None
log.info('No results')
return mk_resp(data=None, status_code=404, response=commons.response) # Not Found
else:
log.warning('Likely bad request')
return mk_resp(data=False, status_code=400, response=commons.response) # Bad Request
# ### END ### API Event Exhibit Tracking ### get_event_exhibit_tracking_obj() ###
# ### BEGIN ### API Event Exhibit Tracking ### get_event_exhibit_obj_tracking_list() ### # ### BEGIN ### API Event Exhibit Tracking ### get_event_exhibit_obj_tracking_list() ###
# Updated 2022-02-14 # Updated 2022-02-15
@router.get('/event/exhibit/{event_exhibit_id}/tracking/list', response_model=Resp_Body_Base) @router.get('/event/exhibit/{event_exhibit_id}/tracking/list', response_model=Resp_Body_Base)
async def get_event_exhibit_obj_tracking_list( async def get_event_exhibit_obj_tracking_list(
event_exhibit_id: str = Query(..., min_length=11, max_length=22), event_exhibit_id: str = Query(..., min_length=11, max_length=22),
event_person_id: str = Query(None, min_length=11, max_length=22), event_person_id: str = Query(None, min_length=11, max_length=22),
inc_event_badge: bool = False,
inc_event_exhibit: bool = False, inc_event_exhibit: bool = False,
inc_event_person: bool = False, inc_event_person: bool = False,
@@ -160,7 +217,6 @@ async def get_event_exhibit_obj_tracking_list(
if event_person_id := redis_lookup_id_random(record_id_random=event_person_id, table_name='event_person'): pass if event_person_id := redis_lookup_id_random(record_id_random=event_person_id, table_name='event_person'): pass
else: return mk_resp(data=None, status_code=404, response=commons.response) else: return mk_resp(data=None, status_code=404, response=commons.response)
# Updated 2022-02-14
if event_exhibit_tracking_rec_list_result := get_event_exhibit_tracking_rec_list( if event_exhibit_tracking_rec_list_result := get_event_exhibit_tracking_rec_list(
event_exhibit_id = event_exhibit_id, event_exhibit_id = event_exhibit_id,
event_person_id = event_person_id, event_person_id = event_person_id,
@@ -170,40 +226,49 @@ async def get_event_exhibit_obj_tracking_list(
event_exhibit_tracking_result_list = [] event_exhibit_tracking_result_list = []
for event_exhibit_tracking_rec in event_exhibit_tracking_rec_list_result: for event_exhibit_tracking_rec in event_exhibit_tracking_rec_list_result:
if load_event_exhibit_tracking_result := load_event_exhibit_tracking_obj( if load_event_exhibit_tracking_result := load_event_exhibit_tracking_obj(
event_exhibit_tracking_id = event_exhibit_tracking_rec.get('event_exhibit_tracking_id', None), event_exhibit_tracking_id = event_exhibit_tracking_rec.get('event_exhibit_tracking_id'),
enabled = commons.enabled, inc_event_badge = inc_event_badge,
limit = commons.limit,
inc_event_exhibit = inc_event_exhibit, inc_event_exhibit = inc_event_exhibit,
inc_event_person = inc_event_person, inc_event_person = inc_event_person,
by_alias = commons.by_alias, # by_alias = commons.by_alias,
exclude_unset = commons.exclude_unset, # exclude_unset = commons.exclude_unset,
# model_as_dict = commons.model_as_dict, # # model_as_dict = commons.model_as_dict,
): ):
event_exhibit_tracking_result_list.append(load_event_exhibit_tracking_result) event_exhibit_tracking_result_list.append(load_event_exhibit_tracking_result)
else: else:
event_exhibit_tracking_result_list.append(None) event_exhibit_tracking_result_list.append(None)
response_data = event_exhibit_tracking_result_list return mk_resp(data=event_exhibit_tracking_result_list, response=commons.response) # Success
elif isinstance(event_exhibit_tracking_rec_list_result, list): elif isinstance(event_exhibit_tracking_rec_list_result, list):
return mk_resp(data=False, status_code=404, response=commons.response) # Not Found return mk_resp(data=False, status_code=404, response=commons.response) # Not Found
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=commons.response_data, response=commons.response)
# ### END ### API Event Exhibit Tracking ### get_event_exhibit_obj_tracking_list() ### # ### END ### API Event Exhibit Tracking ### get_event_exhibit_obj_tracking_list() ###
@router.delete('/event/exhibit/tracking/{obj_id}', response_model=Resp_Body_Base) # ### BEGIN ### API Event Exhibit Tracking ### delete_event_exhibit_tracking_obj() ###
async def delete_event_exhibit_tracking_obj( # Updated 2022-02-15
obj_id: str = Query(..., min_length=1, max_length=22), @router.delete('/event/exhibit/tracking/{event_exhibit_tracking_id}', response_model=Resp_Body_Base)
x_account_id: str = Header(...), def delete_event_exhibit_tracking_obj(
event_exhibit_tracking_id: str = Query(..., min_length=11, max_length=22),
response: Response = Response, response: Response = Response,
): ):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
obj_type = 'event_exhibit_tracking' # ### SECTION ### Secondary data validation
result = delete_obj_template( if event_exhibit_tracking_id := redis_lookup_id_random(record_id_random=event_exhibit_tracking_id, table_name='event_exhibit_tracking'): pass
obj_type=obj_type, else: return mk_resp(data=None, status_code=404, response=response, status_message='The Event Exhibit Tracking ID was invalid or not found.')
obj_id=obj_id,
) if event_exhibit_tracking_obj_result := remove_event_exhibit_tracking_obj(
return result event_exhibit_tracking_id = event_exhibit_tracking_id,
):
log.info('Delete successful. Returning True')
return mk_resp(data=True, response=response) # Success
elif event_exhibit_tracking_obj_result is None: # None
log.info('No results')
return mk_resp(data=None, status_code=404, response=response) # Not Found
else:
log.warning('Likely bad request')
return mk_resp(data=False, status_code=400, response=response) # Bad Request
# ### END ### API Event Exhibit Tracking ### delete_event_exhibit_tracking_obj() ###

View File

@@ -63,7 +63,7 @@ async def post_person_obj(
): pass ): pass
else: else:
log.warning('Likely bad request') log.warning('Likely bad request')
return mk_resp(data=False, status_code=400, response=commons.response, status_message='Something failed while processing the data.') # Bad Request return mk_resp(data=False, status_code=400, response=commons.response, status_message='Not created. Something failed while processing the data. Check the field names and data types.') # Bad Request
# ### SECTION ### Return successful results # ### SECTION ### Return successful results
if return_obj: if return_obj:
@@ -132,7 +132,7 @@ async def patch_person_obj(
): pass ): pass
else: else:
log.warning('Likely bad request') log.warning('Likely bad request')
return mk_resp(data=False, status_code=400, response=commons.response, status_message='Something failed while processing the data.') # Bad Request return mk_resp(data=False, status_code=400, response=commons.response, status_message='Not updated. Something failed while processing the data. Check the field names and data types.') # Bad Request
# ### SECTION ### Return successful results # ### SECTION ### Return successful results
if return_obj: if return_obj:
@@ -276,10 +276,9 @@ async def lookup_email(
# ### BEGIN ### API Person ### email_create_url() ### # ### BEGIN ### API Person ### email_create_url() ###
# Updated 2021-12-03 # Updated 2021-12-03
# @router.get('/person/{person_id}/email_create_url', response_model=Resp_Body_Base)
@router.get('/person/{person_id}/email_auth_key_url', response_model=Resp_Body_Base) @router.get('/person/{person_id}/email_auth_key_url', response_model=Resp_Body_Base)
async def email_auth_key_url( async def email_auth_key_url(
person_id: str = Query(None, min_length=11, max_length=22), person_id: str = Query(..., min_length=11, max_length=22),
root_url: Optional[str] = Query(None, min_length=10, max_length=100), # Absolute min = 7 root_url: Optional[str] = Query(None, min_length=10, max_length=100), # Absolute min = 7
commons: Common_Route_Params = Depends(common_route_params), commons: Common_Route_Params = Depends(common_route_params),
): ):
@@ -344,6 +343,7 @@ async def get_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())
# ### 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
else: return mk_resp(data=None, status_code=404, response=commons.response) else: return mk_resp(data=None, status_code=404, response=commons.response)
@@ -413,7 +413,6 @@ async def get_account_obj_person_list(
else: return mk_resp(data=None, status_code=404, response=commons.response) else: return mk_resp(data=None, status_code=404, response=commons.response)
response_data = None response_data = None
# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
# Updated 2022-01-17 # Updated 2022-01-17
if person_rec_list_result := get_person_rec_list( if person_rec_list_result := get_person_rec_list(