Code clean up. Better debugging. Work on event session, presentation, and presenter.

This commit is contained in:
Scott Idem
2021-09-29 14:18:34 -04:00
parent b2c70c0c87
commit be788fc5e6
10 changed files with 253 additions and 159 deletions

View File

@@ -3,7 +3,7 @@ import datetime, pytz, redis, secrets
from timeit import default_timer as timer from timeit import default_timer as timer
from app.config import settings from app.config import settings
from app.log import log, logging from app.log import log, logging, logger_reset
from sqlalchemy import create_engine, text, Time from sqlalchemy import create_engine, text, Time
from sqlalchemy.exc import IntegrityError, OperationalError from sqlalchemy.exc import IntegrityError, OperationalError
@@ -26,6 +26,7 @@ db = engine.connect()
# ### BEGIN ### Core Help CRUD ### sql_insert() ### # ### BEGIN ### Core Help CRUD ### sql_insert() ###
# Updated 2021-09-07 # Updated 2021-09-07
@logger_reset
def sql_insert( def sql_insert(
sql: str|None = None, sql: str|None = None,
data: dict|None = None, data: dict|None = None,
@@ -33,7 +34,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.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
if sql: if sql:
@@ -157,6 +158,7 @@ def sql_insert(
# ### BEGIN ### Core Help CRUD ### sql_update() ### # ### BEGIN ### Core Help CRUD ### sql_update() ###
# Updated 2021-09-07 # Updated 2021-09-07
@logger_reset
def sql_update( def sql_update(
sql: str|None = None, sql: str|None = None,
data: dict|None = None, data: dict|None = None,
@@ -166,7 +168,7 @@ def sql_update(
rm_id_random: bool = False, rm_id_random: bool = False,
id_random_length: None|int = None id_random_length: None|int = None
): ):
#log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
if sql: if sql:
@@ -290,6 +292,7 @@ def sql_update(
# The catch all SQL INSERT or UPDATE function - STI 2021-02-17 # The catch all SQL INSERT or UPDATE function - STI 2021-02-17
# This one does it all for SQL INSERT and UPDATE queries # This one does it all for SQL INSERT and UPDATE queries
# Updated 2021-09-07 # Updated 2021-09-07
@logger_reset
def sql_insert_or_update( def sql_insert_or_update(
sql: str|None = None, sql: str|None = None,
data: dict|None = None, data: dict|None = None,
@@ -297,7 +300,7 @@ def sql_insert_or_update(
rm_id_random: bool = False, rm_id_random: bool = False,
id_random_length: int|None = None, id_random_length: int|None = None,
): ):
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
#if sql: pass #if sql: pass
@@ -426,6 +429,7 @@ def sql_insert_or_update(
# The catch all SQL SELECT function - STI 2021-02-17 # The catch all SQL SELECT function - STI 2021-02-17
# This one does it all for SQL SELECT queries # This one does it all for SQL SELECT queries
# Updated 2021-09-07 # Updated 2021-09-07
@logger_reset
def sql_select( def sql_select(
table_name: str|None = None, table_name: str|None = None,
record_id: int|None = None, record_id: int|None = None,
@@ -439,7 +443,6 @@ def sql_select(
as_list: bool|None = False, as_list: bool|None = False,
max_count: int = 100000, max_count: int = 100000,
): ):
current_log_level = log.level
log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
@@ -625,13 +628,11 @@ def sql_select(
#log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL #log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(record_li) log.debug(record_li)
log.setLevel(current_log_level) # Reset log level; should be decorator
return record_li # Successful return record_li # Successful
else: else:
#log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL #log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(record) log.debug(record)
log.setLevel(current_log_level) # Reset log level; should be decorator
return record # Successful return record # Successful
elif result.rowcount > 1: elif result.rowcount > 1:
log.info(f'Found {result.rowcount} records. as_dict={as_dict}, as_list={as_list}') log.info(f'Found {result.rowcount} records. as_dict={as_dict}, as_list={as_list}')
@@ -651,13 +652,11 @@ def sql_select(
record_li = result.fetchall() record_li = result.fetchall()
log.debug(record_li) log.debug(record_li)
log.setLevel(current_log_level) # Reset log level; should be decorator
return record_li # Successful return record_li # Successful
else: else:
log.info('No records found. Returning None.') log.info('No records found. Returning None.')
log.debug(result) log.debug(result)
log.setLevel(current_log_level) # Reset log level; should be decorator
return None # Successful return None # Successful
# ### END ### Core Help CRUD ### sql_select() ### # ### END ### Core Help CRUD ### sql_select() ###
@@ -666,6 +665,7 @@ def sql_select(
# 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 2021-09-07
@logger_reset
def sql_delete( def sql_delete(
table_name: str|None = None, table_name: str|None = None,
record_id: int|None = None, record_id: int|None = None,
@@ -675,7 +675,7 @@ def sql_delete(
sql: str|None = None, sql: str|None = None,
data: dict|None = None data: dict|None = None
): ):
# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
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):
@@ -822,11 +822,11 @@ def sql_delete(
# If success then return the ID number # If success then return the ID number
# If not success and there is a table_name then check the database table passed # If not success and there is a table_name then check the database table passed
# If found in database table then store in Redis and return the ID number # If found in database table then store in Redis and return the ID number
@logger_reset
def redis_lookup_id_random( def redis_lookup_id_random(
record_id_random: int|str, record_id_random: int|str,
table_name: str, table_name: str,
): ):
current_log_level = log.level
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())
@@ -834,7 +834,6 @@ def redis_lookup_id_random(
elif isinstance(record_id_random, int): return record_id_random elif isinstance(record_id_random, int): return record_id_random
else: else:
log.info(f'Unexpected data type or string format: {str(type(record_id_random))} Expected type is a string 11 or 22 characters long.') log.info(f'Unexpected data type or string format: {str(type(record_id_random))} Expected type is a string 11 or 22 characters long.')
log.setLevel(current_log_level) # Reset log level; should be decorator
return False return False
if record_id_random and table_name: if record_id_random and table_name:
@@ -867,7 +866,7 @@ def redis_lookup_id_random(
if record_id: if record_id:
log.info('The record ID was found using the record_id_random value.') log.info('The record ID was found using the record_id_random value.')
log.info(f'TTL for: {key_name} : {str(record_id)} is {str(r.ttl(key_name))} seconds') log.info(f'TTL for: {key_name} : {str(record_id)} is {str(r.ttl(key_name))} seconds')
log.setLevel(current_log_level) # Reset log level; should be decorator
return int(record_id) return int(record_id)
elif table_name: elif table_name:
data = { 'id_random': record_id_random } data = { 'id_random': record_id_random }
@@ -878,30 +877,25 @@ def redis_lookup_id_random(
""" """
if select_results := sql_select(sql=sql, data=data): if select_results := sql_select(sql=sql, data=data):
#log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(select_results) log.debug(select_results)
log.debug(type(select_results)) log.debug(type(select_results))
if isinstance(select_results, dict): if isinstance(select_results, dict):
log.info(f"""Record ID random found: {str(select_results['id'])}""") log.info(f"""Record ID random found: {str(select_results['id'])}""")
if record_id := select_results.get('id'): if record_id := select_results.get('id'):
r.setex(key_name, datetime.timedelta(minutes=90), value=record_id) r.setex(key_name, datetime.timedelta(minutes=90), value=record_id)
log.setLevel(current_log_level) # Reset log level; should be decorator
return int(record_id) return int(record_id)
else: else:
# log.setLevel(logging.ERROR) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.error('The SQL result was not what was expected.') log.error('The SQL result was not what was expected.')
return False return False
else: else:
# log.setLevel(logging.ERROR) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.error('More than one record may have been found. There may be a duplicate id_random.') log.error('More than one record may have been found. There may be a duplicate id_random.')
log.error(select_results) log.error(select_results)
return False return False
else: else:
#log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.info('Record ID random was not found') log.info('Record ID random was not found')
return None return None
# log.setLevel(logging.ERROR) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.error('We should not be here. Something unexpected happened.') log.error('We should not be here. Something unexpected happened.')
return False # Just in case return False # Just in case
# ### END ### API DB SQL ### redis_lookup_id_random() ### # ### END ### API DB SQL ### redis_lookup_id_random() ###
@@ -910,11 +904,12 @@ def redis_lookup_id_random(
# ### BEGIN ### API DB SQL ### get_id_random() ### # ### BEGIN ### API DB SQL ### get_id_random() ###
# Changed name from lookup_id_random() to get_id_random() # Changed name from lookup_id_random() to get_id_random()
# Updated 2021-08-23 # Updated 2021-08-23
@logger_reset
def get_id_random( def get_id_random(
record_id: int, record_id: int,
table_name: str table_name: str
): ):
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
data = { 'id': record_id } data = { 'id': record_id }
@@ -952,10 +947,11 @@ def get_id_random(
# Look up and resolve id_random values to their id # Look up and resolve id_random values to their id
# Remove the unneeded *_id_random key from the dict # Remove the unneeded *_id_random key from the dict
# This really needs to be simplified... Use a list of dicts instead. Can store as JSON in the DB. # This really needs to be simplified... Use a list of dicts instead. Can store as JSON in the DB.
@logger_reset
def lookup_id_random_pop( def lookup_id_random_pop(
obj_data: dict obj_data: dict
): ):
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
if 'account_id_random' in obj_data: if 'account_id_random' in obj_data:
@@ -1182,6 +1178,7 @@ def lookup_id_random_pop(
# ### BEGIN ### API DB SQL Methods ### get_account_id_w_for_type_id() ### # ### BEGIN ### API DB SQL Methods ### get_account_id_w_for_type_id() ###
# Updated 2021-08-24 # Updated 2021-08-24
@logger_reset
def get_account_id_w_for_type_id( def get_account_id_w_for_type_id(
for_type: str, for_type: str,
for_id: int|str, for_id: int|str,

View File

@@ -2,12 +2,11 @@ from __future__ import annotations
import datetime, jwt, pytz, redis, time import datetime, jwt, pytz, redis, time
from passlib.hash import argon2 from passlib.hash import argon2
#from datetime import datetime, time, timedelta
from fastapi import APIRouter, Depends, Header, HTTPException, Response, status from fastapi import APIRouter, Depends, Header, HTTPException, Response, status
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.log import log, logging from app.log import log, logging, logger_reset
from app.db_sql import redis_lookup_id_random, sql_select from app.db_sql import redis_lookup_id_random, sql_select
@@ -57,7 +56,9 @@ def verify_secure_hash_string(string:str, string_hash:str):
return False return False
# ### BEGIN ### API Lib General ### sign_jwt() ###
# Updated 2021-07-14 # Updated 2021-07-14
@logger_reset
def sign_jwt( def sign_jwt(
secret_key: str, # Secret/Private/Password secret_key: str, # Secret/Private/Password
public_key: str, # Will be part of the token. Use to look up secret when verifying. public_key: str, # Will be part of the token. Use to look up secret when verifying.
@@ -86,9 +87,12 @@ def sign_jwt(
log.debug(token) log.debug(token)
return token return token
# ### END ### API Lib General ### sign_jwt() ###
# ### BEGIN ### API Lib General ### decode_jwt() ###
# Updated 2021-07-14 # Updated 2021-07-14
@logger_reset
def decode_jwt( def decode_jwt(
secret_key: str, secret_key: str,
token: str, token: str,
@@ -106,3 +110,4 @@ def decode_jwt(
else: return False else: return False
except: except:
return None return None
# ### END ### API Lib General ### decode_jwt() ###

View File

@@ -6,3 +6,22 @@ log.setLevel(logging.ERROR) # DEBUG > INFO > WARNING > ERROR > CRITICAL
logging.basicConfig( logging.basicConfig(
format='[%(asctime)s] %(levelname)s @ %(module)s.%(funcName)s()#%(lineno)d: %(message)s' format='[%(asctime)s] %(levelname)s @ %(module)s.%(funcName)s()#%(lineno)d: %(message)s'
) )
# ### BEGIN ### Log ### logger_reset() ###
# Updated 2021-09-29
def logger_reset(func):
# log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
# log.debug(locals())
def wrapper(*args, **kwargs):
log.info(f'Saving logger level... Log level: {log.level}')
init_log_level = log.level
func(*args, **kwargs)
log.info(f'Resetting logger level... Log level: {log.level}')
log.setLevel(init_log_level)
log.info(f'Reset logger level. Log level: {log.level}')
return func(*args, **kwargs)
return wrapper
# ### END ### Log ### logger_reset() ###

View File

@@ -22,11 +22,15 @@ from app.models.event_location_models import Event_Location_Base
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 enabled: str = 'enabled', # enabled, disabled, all
limit: int = 1000,
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,
limit: int = 1000,
by_alias: bool = True,
exclude_unset: bool = True,
model_as_dict: bool = False,
) -> Event_Location_Base|bool: ) -> Event_Location_Base|bool:
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())
@@ -35,22 +39,19 @@ def load_event_location_obj(
else: return False else: return False
if event_location_rec := sql_select(table_name='v_event_location', record_id=event_location_id): pass if event_location_rec := sql_select(table_name='v_event_location', record_id=event_location_id): pass
else: else: return False
return False
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(event_location_rec) log.debug(event_location_rec)
try: try:
log.info('Try to apply event location record data to Event_Location_Base...')
event_location_obj = Event_Location_Base(**event_location_rec) event_location_obj = Event_Location_Base(**event_location_rec)
log.debug(event_location_obj) log.debug(event_location_obj)
except ValidationError as e: except ValidationError as e:
log.error(e.json()) log.error(e.json())
return False return False
# event_location_obj = Event_Location_Base(**event_location_rec)
# log.debug(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)
@@ -116,4 +117,80 @@ def load_event_location_obj(
if inc_event_presenter_list: pass if inc_event_presenter_list: pass
return event_location_obj if model_as_dict:
return event_location_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset) # pylint: disable=no-member
else:
return event_location_obj
return event_location_obj
# ### BEGIN ### API Event Location Methods ### get_event_location_rec_list() ###
def get_event_location_rec_list(
event_id: str,
enabled: str = 'enabled', # enabled, disabled, all
hidden: str = 'hidden', # hidden, not_hidden, all
limit: int = 100,
) -> list|bool:
log.setLevel(logging.DEBUG) # 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 False
data = {}
data['event_id'] = event_id
if event_id:
sql_where_event_id = f'`event_location`.event_id = :event_id'
else: sql_where_event_id = ''
if enabled in ['enabled', 'disabled', 'all']:
if enabled == 'enabled':
data['enable'] = True
sql_enabled = f'AND `event_location`.enable = :enable'
elif enabled == 'disabled':
data['enable'] = False
sql_enabled = f'AND `event_location`.enable = :enable'
elif enabled == 'all':
sql_enabled = ''
if hidden in ['hidden', 'not_hidden', 'all']:
if hidden == 'hidden':
data['hide'] = True
sql_hidden = f'AND `event_location`.hide = :hide'
elif hidden == 'not_hidden':
data['hide'] = False
sql_hidden = f'AND `event_location`.hide = :hide'
elif hidden == 'all':
sql_hidden = ''
if limit:
data['limit'] = limit
sql_limit = f'LIMIT :limit'
else:
sql_limit = ''
sql = f"""
SELECT `event_location`.id AS 'event_location_id', `event_location`.id_random AS 'event_location_id_random'
FROM `event_location` AS `event_location`
WHERE
{sql_where_event_id}
{sql_enabled}
{sql_hidden}
ORDER BY `event_location`.created_on DESC, `event_location`.updated_on DESC
{sql_limit};
"""
if event_location_rec_li_result := sql_select(data=data, sql=sql, as_list=True):
event_location_rec_li = event_location_rec_li_result
else:
event_location_rec_li = []
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(event_location_rec_li_result)
log.debug(type(event_location_rec_li))
log.debug(len(event_location_rec_li))
return event_location_rec_li
# ### END ### API Event Location Methods ### get_event_location_rec_list() ###

View File

@@ -10,6 +10,7 @@ from app.lib_general import log, logging
from app.methods.address_methods import load_address_obj from app.methods.address_methods import load_address_obj
from app.methods.contact_methods import load_contact_obj from app.methods.contact_methods import load_contact_obj
from app.methods.event_cfg_methods import create_update_event_cfg_obj_v4, load_event_cfg_obj from app.methods.event_cfg_methods import create_update_event_cfg_obj_v4, load_event_cfg_obj
from app.methods.event_location_methods import get_event_location_rec_list, load_event_location_obj
from app.methods.event_session_methods import get_event_session_rec_list, load_event_session_obj from app.methods.event_session_methods import get_event_session_rec_list, load_event_session_obj
from app.methods.person_methods import create_update_person_obj_v4b, load_person_obj from app.methods.person_methods import create_update_person_obj_v4b, load_person_obj
from app.methods.user_methods import create_user_obj, load_user_obj, update_user_obj from app.methods.user_methods import create_user_obj, load_user_obj, update_user_obj
@@ -22,11 +23,10 @@ from app.models.event_cfg_models import Event_Cfg_Base
# ### BEGIN ### API Event Methods ### load_event_obj() ### # ### BEGIN ### API Event Methods ### load_event_obj() ###
def load_event_obj( def load_event_obj(
event_id: int|str, event_id: int|str,
limit: int = 1000,
by_alias: bool = True,
exclude_unset: bool = True,
model_as_dict: bool = False,
enabled: str = 'enabled', # enabled, disabled, all enabled: str = 'enabled', # enabled, disabled, all
approved: str = 'all', # approved, not_approved, all
hidden: str = 'not_hidden', # hidden, not_hidden, all
review: str = 'all', # ready, not_ready, all
inc_address: bool = False, # Loads address_location and under contact(s) inc_address: bool = False, # Loads address_location and under contact(s)
# inc_address_location: bool = False, # inc_address_location: bool = False,
inc_contact: bool = False, # Loads all 3 contacts inc_contact: bool = False, # Loads all 3 contacts
@@ -57,8 +57,12 @@ def load_event_obj(
inc_product: bool = False, inc_product: bool = False,
inc_product_list: bool = False, inc_product_list: bool = False,
inc_user: bool = False, inc_user: bool = False,
limit: int = 1000,
by_alias: bool = True,
exclude_unset: bool = True,
model_as_dict: bool = False,
) -> Event_Base|bool: ) -> Event_Base|bool:
#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())
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
@@ -165,22 +169,59 @@ def load_event_obj(
if inc_event_device_list: pass if inc_event_device_list: pass
if inc_event_exhibit_list: pass if inc_event_exhibit_list: pass
if inc_event_file_list: pass if inc_event_file_list: pass
if inc_event_location_list: pass
# Updated 2021-09-29
if inc_event_location_list:
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.info('Need to include event location list...')
if event_location_rec_list_result := get_event_location_rec_list(
event_id = event_id,
enabled = enabled, # enabled, disabled, all
hidden = 'all', # hidden, not_hidden, all
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),
enabled = enabled,
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,
limit = limit,
by_alias = by_alias,
exclude_unset = exclude_unset,
# model_as_dict = model_as_dict,
):
event_location_result_list.append(load_event_location_result)
else:
event_location_result_list.append(None)
log.debug(event_location_result_list)
event_obj.event_location_list = event_location_result_list
elif isinstance(event_location_rec_list_result, list):
event_obj.event_location_list = []
else:
event_obj.event_location_list = None
if inc_event_person_list: pass if inc_event_person_list: pass
if inc_event_presentation_list: pass if inc_event_presentation_list: pass
if inc_event_presenter_list: pass if inc_event_presenter_list: pass
# if inc_event_registration_cfg: pass # if inc_event_registration_cfg: pass
if inc_event_registration_list: pass if inc_event_registration_list: pass
# Updated 2021-09-28
if inc_event_session_list: if inc_event_session_list:
log.info('Need to include event session list...') log.info('Need to include event session list...')
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
if event_session_rec_list_result := get_event_session_rec_list( if event_session_rec_list_result := get_event_session_rec_list(
event_id = event_id, event_id = event_id,
review = 'all', # ready, not_ready, all enabled = enabled, # enabled, disabled, all
approved = 'all', # approve(d), not_approved, all approved = 'all', # approve(d), not_approved, all
enabled = enabled, hidden = 'not_hidden', # hidden, not_hidden, all
review = 'all', # ready, not_ready, all
limit = limit, limit = limit,
): ):
event_session_result_list = [] event_session_result_list = []
@@ -209,70 +250,6 @@ def load_event_obj(
else: else:
event_obj.event_session_list = None event_obj.event_session_list = None
# data = {}
# data['event_id'] = event_id
# if enabled in ['enabled', 'disabled', 'all']:
# if enabled == 'enabled':
# data['enable'] = True
# sql_enabled = f'AND `event_session`.enable = :enable'
# elif enabled == 'disabled':
# data['enable'] = False
# sql_enabled = f'AND `event_session`.enable = :enable'
# elif enabled == 'all':
# sql_enabled = ''
# else:
# sql_enabled = f'AND `event_session`.enable = :enable'
# # else: event_obj['event_session'] = None
# if limit:
# data['limit'] = limit
# sql_limit = f'LIMIT :limit'
# else:
# sql_limit = ''
# sql = f"""
# SELECT `event_session`.id AS 'event_session_id', `event_session`.id_random AS 'event_session_id_random'
# FROM `event_session` AS `event_session`
# WHERE `event_session`.event_id = :event_id
# {sql_enabled}
# ORDER BY `event_session`.created_on DESC, `event_session`.updated_on DESC
# {sql_limit};
# """
# #log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
# if event_session_obj_li_result := sql_select(data=data, sql=sql, as_list=True):
# #log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
# log.debug(event_session_obj_li_result)
# event_session_obj_li = []
# for event_session_obj in event_session_obj_li_result:
# event_session_id = event_session_obj.get('event_session_id', None)
# if event_session_obj := load_event_session_obj(
# event_session_id=event_session_id,
# limit = limit,
# enabled=enabled,
# inc_event_abstract_list=inc_event_abstract_list,
# inc_event_device_list=inc_event_device_list,
# inc_event_file_list=inc_event_file_list,
# inc_event_location=inc_event_location,
# inc_event_person_list=inc_event_person_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_event_track=inc_event_track,
# inc_person=inc_person,
# inc_user=inc_user,
# ):
# data = event_session_obj.dict(by_alias=True, exclude_unset=True)
# event_session_obj_li.append(data)
# log.debug(event_session_obj_li)
# #event_rec['event_session_list'] = event_session_obj_li
# event_obj.event_session_list = event_session_obj_li
# else:
# #log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
# log.debug(event_session_obj_li_result)
# #log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
if inc_event_track_list: pass if inc_event_track_list: pass
if inc_poc_event_person: if inc_poc_event_person:

View File

@@ -25,10 +25,6 @@ def load_event_presentation_obj(
enabled: str = 'enabled', # enabled, disabled, all enabled: str = 'enabled', # enabled, disabled, all
hidden: str = 'not_hidden', # hidden, not_hidden, all hidden: str = 'not_hidden', # hidden, not_hidden, all
inc_file_count: bool = False, # NOTE: file counts are from separate views inc_file_count: bool = False, # NOTE: file counts are from separate views
limit: int = 1000,
by_alias: bool = True,
exclude_unset: bool = True,
model_as_dict: bool = False,
event_file_file_purpose_id: int = None, event_file_file_purpose_id: int = None,
event_file_file_purpose: str = None, event_file_file_purpose: str = None,
event_file_priority: bool = None, event_file_priority: bool = None,
@@ -49,6 +45,10 @@ def load_event_presentation_obj(
inc_event_session: bool = False, inc_event_session: bool = False,
inc_person: bool = False, inc_person: bool = False,
inc_user: bool = False, inc_user: bool = False,
limit: int = 1000,
by_alias: bool = True,
exclude_unset: bool = True,
model_as_dict: bool = False,
) -> Event_Presentation_Base|bool: ) -> Event_Presentation_Base|bool:
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())
@@ -75,9 +75,6 @@ def load_event_presentation_obj(
log.error(e.json()) log.error(e.json())
return False return False
# event_presentation_obj = Event_Presentation_Base(**event_presentation_rec)
# log.debug(event_presentation_obj)
# account_id = event_presentation_rec.get('account_id', None) # account_id = event_presentation_rec.get('account_id', None)
event_id = event_presentation_rec.get('event_id', None) event_id = event_presentation_rec.get('event_id', None)
event_abstract_id = event_presentation_rec.get('event_abstract_id', None) event_abstract_id = event_presentation_rec.get('event_abstract_id', None)
@@ -99,11 +96,11 @@ def load_event_presentation_obj(
if hidden in ['hidden', 'not_hidden', 'all']: if hidden in ['hidden', 'not_hidden', 'all']:
if hidden == 'hidden': if hidden == 'hidden':
data['hidden'] = True data['hide'] = True
sql_hidden = f'AND `event_presenter`.hidden = :hidden' sql_hidden = f'AND `event_presenter`.hide = :hide'
elif hidden == 'not_hidden': elif hidden == 'not_hidden':
data['hidden'] = False data['hide'] = False
sql_hidden = f'AND `event_presenter`.hidden = :hidden' sql_hidden = f'AND `event_presenter`.hide = :hide'
elif hidden == 'all': elif hidden == 'all':
sql_hidden = '' sql_hidden = ''

View File

@@ -21,10 +21,6 @@ def load_event_presenter_obj(
enabled: str = 'enabled', # enabled, disabled, all enabled: str = 'enabled', # enabled, disabled, all
hidden: str = 'not_hidden', # hidden, not_hidden, all hidden: str = 'not_hidden', # hidden, not_hidden, all
inc_file_count: bool = False, # NOTE: file counts are from separate views inc_file_count: bool = False, # NOTE: file counts are from separate views
limit: int = 1000,
by_alias: bool = True,
exclude_unset: bool = True,
model_as_dict: bool = False,
event_file_file_purpose_id: int = None, event_file_file_purpose_id: int = None,
event_file_file_purpose: str = None, event_file_file_purpose: str = None,
event_file_priority: bool = None, event_file_priority: bool = None,
@@ -43,6 +39,10 @@ def load_event_presenter_obj(
inc_event_session: bool = False, inc_event_session: bool = False,
inc_person: bool = False, # Using load_event_person_obj inc_person: bool = False, # Using load_event_person_obj
inc_user: bool = False, # Using load_event_person_obj inc_user: bool = False, # Using load_event_person_obj
limit: int = 1000,
by_alias: bool = True,
exclude_unset: bool = True,
model_as_dict: bool = False,
) -> Event_Presenter_Base|bool: ) -> Event_Presenter_Base|bool:
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())
@@ -191,6 +191,7 @@ def load_event_presenter_obj(
def get_event_presenter_rec_list( def get_event_presenter_rec_list(
event_person_id: str = None, event_person_id: str = None,
event_presentation_id: str = None, event_presentation_id: str = None,
hidden: str = 'not_hidden', # hidden, not_hidden, all
enabled: str = 'enabled', # enabled, disabled, all enabled: str = 'enabled', # enabled, disabled, all
limit: int = 100, limit: int = 100,
) -> list|bool: ) -> list|bool:
@@ -211,6 +212,16 @@ def get_event_presenter_rec_list(
sql_where_event_presentation_id = f'`event_presenter`.event_presentation_id = :event_presentation_id' sql_where_event_presentation_id = f'`event_presenter`.event_presentation_id = :event_presentation_id'
else: sql_where_event_presentation_id = '' else: sql_where_event_presentation_id = ''
if hidden in ['hidden', 'not_hidden', 'all']:
if hidden == 'hidden':
data['hide'] = True
sql_hidden = f'AND `event_presenter`.hide = :hide'
elif hidden == 'not_hidden':
data['hide'] = False
sql_hidden = f'AND `event_presenter`.hide = :hide'
elif hidden == 'all':
sql_hidden = ''
if enabled in ['enabled', 'disabled', 'all']: if enabled in ['enabled', 'disabled', 'all']:
if enabled == 'enabled': if enabled == 'enabled':
data['enable'] = True data['enable'] = True
@@ -233,6 +244,7 @@ def get_event_presenter_rec_list(
WHERE WHERE
{sql_where_event_person_id} {sql_where_event_person_id}
{sql_where_event_presentation_id} {sql_where_event_presentation_id}
{sql_hidden}
{sql_enabled} {sql_enabled}
ORDER BY `event_presenter`.created_on DESC, `event_presenter`.updated_on DESC ORDER BY `event_presenter`.created_on DESC, `event_presenter`.updated_on DESC
{sql_limit}; {sql_limit};

View File

@@ -22,10 +22,6 @@ from app.models.event_session_models import Event_Session_Base
# ### BEGIN ### API Event Session Methods ### load_event_session_obj() ### # ### BEGIN ### API Event Session Methods ### load_event_session_obj() ###
def load_event_session_obj( def load_event_session_obj(
event_session_id: int|str, event_session_id: int|str,
limit: int = 1000,
by_alias: bool = True,
exclude_unset: bool = True,
model_as_dict: bool = False,
enabled: str = 'enabled', # enabled, disabled, all enabled: str = 'enabled', # enabled, disabled, all
hidden: str = 'not_hidden', # hidden, not_hidden, all hidden: str = 'not_hidden', # hidden, not_hidden, all
inc_file_count: bool = False, # NOTE: file counts are from separate views inc_file_count: bool = False, # NOTE: file counts are from separate views
@@ -52,6 +48,10 @@ def load_event_session_obj(
inc_poc_event_person: bool = False, inc_poc_event_person: bool = False,
inc_person: bool = False, inc_person: bool = False,
inc_user: bool = False, inc_user: bool = False,
limit: int = 1000,
by_alias: bool = True,
exclude_unset: bool = True,
model_as_dict: bool = False,
) -> Event_Session_Base|bool: ) -> Event_Session_Base|bool:
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())
@@ -159,11 +159,11 @@ def load_event_session_obj(
if hidden in ['hidden', 'not_hidden', 'all']: if hidden in ['hidden', 'not_hidden', 'all']:
if hidden == 'hidden': if hidden == 'hidden':
data['hidden'] = True data['hide'] = True
sql_hidden = f'AND `event_presentation`.hidden = :hidden' sql_hidden = f'AND `event_presentation`.hide = :hide'
elif hidden == 'not_hidden': elif hidden == 'not_hidden':
data['hidden'] = False data['hide'] = False
sql_hidden = f'AND `event_presentation`.hidden = :hidden' sql_hidden = f'AND `event_presentation`.hide = :hide'
elif hidden == 'all': elif hidden == 'all':
sql_hidden = '' sql_hidden = ''
@@ -271,10 +271,10 @@ 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,
review: str = 'ready', # ready, not_ready, all
approved: str = 'approved', # approved, not_approved, all
hidden: str = 'hidden', # hidden, not_hidden, all
enabled: str = 'enabled', # enabled, disabled, all enabled: str = 'enabled', # enabled, disabled, all
approved: str = 'all', # approved, not_approved, all
hidden: str = 'not_hidden', # hidden, not_hidden, all
review: str = 'all', # ready, not_ready, 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
@@ -310,11 +310,11 @@ def get_event_session_rec_list(
if hidden in ['hidden', 'not_hidden', 'all']: if hidden in ['hidden', 'not_hidden', 'all']:
if hidden == 'hidden': if hidden == 'hidden':
data['hidden'] = True data['hide'] = True
sql_hidden = f'AND `event_session`.hidden = :hidden' sql_hidden = f'AND `event_session`.hide = :hide'
elif hidden == 'not_hidden': elif hidden == 'not_hidden':
data['hidden'] = False data['hide'] = False
sql_hidden = f'AND `event_session`.hidden = :hidden' sql_hidden = f'AND `event_session`.hide = :hide'
elif hidden == 'all': elif hidden == 'all':
sql_hidden = '' sql_hidden = ''
@@ -347,6 +347,8 @@ def get_event_session_rec_list(
{sql_limit}; {sql_limit};
""" """
log.debug(sql)
if event_session_rec_li_result := sql_select(data=data, sql=sql, as_list=True): if event_session_rec_li_result := sql_select(data=data, sql=sql, as_list=True):
event_session_rec_li = event_session_rec_li_result event_session_rec_li = event_session_rec_li_result

View File

@@ -77,6 +77,8 @@ class Event_Session_Base(BaseModel):
presentation_file_path: Optional[str] presentation_file_path: Optional[str]
presentation_file_size: Optional[str] presentation_file_size: Optional[str]
enable_event_file_approval_option: Optional[bool]
file_count: Optional[int] file_count: Optional[int]
status: Optional[int] status: Optional[int]

View File

@@ -174,25 +174,25 @@ async def get_event_obj_li(
for event_obj in event_obj_li_result: for event_obj in event_obj_li_result:
event_id = event_obj.get('event_id', None) event_id = event_obj.get('event_id', None)
if event_obj := load_event_obj( if event_obj := load_event_obj(
event_id=event_id, event_id = event_id,
enabled=enabled, enabled = enabled,
inc_event_abstract_list=inc_event_abstract_list, inc_event_abstract_list = inc_event_abstract_list,
inc_event_badge_list=inc_event_badge_list, inc_event_badge_list = inc_event_badge_list,
inc_event_device_list=inc_event_device_list, inc_event_device_list = inc_event_device_list,
inc_event_exhibit_list=inc_event_exhibit_list, inc_event_exhibit_list = inc_event_exhibit_list,
inc_event_file_list=inc_event_file_list, inc_event_file_list = inc_event_file_list,
inc_event_location_list=inc_event_location_list, inc_event_location_list = inc_event_location_list,
inc_event_person_list=inc_event_person_list, inc_event_person_list = inc_event_person_list,
inc_event_presentation_list=inc_event_presentation_list, inc_event_presentation_list = inc_event_presentation_list,
inc_event_presenter_list=inc_event_presenter_list, inc_event_presenter_list = inc_event_presenter_list,
inc_event_registration_list=inc_event_registration_list, inc_event_registration_list = inc_event_registration_list,
inc_event_session_list=inc_event_session_list, inc_event_session_list = inc_event_session_list,
inc_event_track_list=inc_event_track_list, inc_event_track_list = inc_event_track_list,
inc_event_cfg=inc_event_cfg, inc_event_cfg = inc_event_cfg,
inc_event_registration_cfg=inc_event_registration_cfg, inc_event_registration_cfg = inc_event_registration_cfg,
inc_poc_event_person=inc_poc_event_person, inc_poc_event_person = inc_poc_event_person,
# inc_poc_person=inc_poc_person, # inc_poc_person = inc_poc_person,
inc_user=inc_user, inc_user = inc_user,
): ):
data = event_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset) # pylint: disable=no-member data = event_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset) # pylint: disable=no-member
@@ -209,8 +209,10 @@ async def get_event_obj_li(
@router.get('/event/{event_id}', response_model=Resp_Body_Base) @router.get('/event/{event_id}', response_model=Resp_Body_Base)
async def get_event_obj( async def get_event_obj(
event_id: str = Query(..., min_length=1, max_length=22), event_id: str = Query(..., min_length=1, max_length=22),
enabled: str = 'enabled', # For now this covers any included objects or object lists enabled: str = 'enabled', # enabled, disabled, all
limit: int = 500, # For now this covers any included objects or object lists approved: str = 'all', # approve(d), not_approved, all
hidden: str = 'not_hidden', # hidden, not_hidden, all
review: str = 'all', # ready, not_ready, all
inc_address: bool = False, # Under event and under contact inc_address: bool = False, # Under event and under contact
# inc_address_location: bool = False, # inc_address_location: bool = False,
inc_contact: bool = False, inc_contact: bool = False,
@@ -241,11 +243,12 @@ async def get_event_obj(
inc_product_list: bool = False, inc_product_list: bool = False,
inc_user: bool = False, inc_user: bool = False,
x_account_id: str = Header(...), x_account_id: str = Header(...),
limit: int = 500, # For now this covers any included objects or object lists
by_alias: Optional[bool] = True, by_alias: Optional[bool] = True,
exclude_unset: Optional[bool] = True, exclude_unset: Optional[bool] = True,
response: Response = Response, 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 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
@@ -254,11 +257,10 @@ async def get_event_obj(
if event_obj := load_event_obj( if event_obj := load_event_obj(
event_id = event_id, event_id = event_id,
limit = limit,
by_alias = by_alias,
exclude_unset = exclude_unset,
# model_as_dict = model_as_dict,
enabled = enabled, enabled = enabled,
approved = approved,
hidden = hidden,
review = review,
inc_address = inc_address, inc_address = inc_address,
# inc_address_location = inc_address_location, # inc_address_location = inc_address_location,
inc_contact = inc_contact, inc_contact = inc_contact,
@@ -287,6 +289,10 @@ async def get_event_obj(
# inc_product = inc_product, # inc_product = inc_product,
# inc_product_list = inc_product_list, # inc_product_list = inc_product_list,
inc_user = inc_user, inc_user = inc_user,
limit = limit,
by_alias = by_alias,
exclude_unset = exclude_unset,
# model_as_dict = model_as_dict,
): ):
# event_dict = event_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset) # event_dict = event_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset)
pass pass