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 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.exc import IntegrityError, OperationalError
@@ -26,6 +26,7 @@ db = engine.connect()
# ### BEGIN ### Core Help CRUD ### sql_insert() ###
# Updated 2021-09-07
@logger_reset
def sql_insert(
sql: str|None = None,
data: dict|None = None,
@@ -33,7 +34,7 @@ def sql_insert(
rm_id_random: bool = False,
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())
if sql:
@@ -157,6 +158,7 @@ def sql_insert(
# ### BEGIN ### Core Help CRUD ### sql_update() ###
# Updated 2021-09-07
@logger_reset
def sql_update(
sql: str|None = None,
data: dict|None = None,
@@ -166,7 +168,7 @@ def sql_update(
rm_id_random: bool = False,
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())
if sql:
@@ -290,6 +292,7 @@ def sql_update(
# The catch all SQL INSERT or UPDATE function - STI 2021-02-17
# This one does it all for SQL INSERT and UPDATE queries
# Updated 2021-09-07
@logger_reset
def sql_insert_or_update(
sql: str|None = None,
data: dict|None = None,
@@ -297,7 +300,7 @@ def sql_insert_or_update(
rm_id_random: bool = False,
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())
#if sql: pass
@@ -426,6 +429,7 @@ def sql_insert_or_update(
# The catch all SQL SELECT function - STI 2021-02-17
# This one does it all for SQL SELECT queries
# Updated 2021-09-07
@logger_reset
def sql_select(
table_name: str|None = None,
record_id: int|None = None,
@@ -439,7 +443,6 @@ def sql_select(
as_list: bool|None = False,
max_count: int = 100000,
):
current_log_level = log.level
log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
@@ -625,13 +628,11 @@ def sql_select(
#log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(record_li)
log.setLevel(current_log_level) # Reset log level; should be decorator
return record_li # Successful
else:
#log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(record)
log.setLevel(current_log_level) # Reset log level; should be decorator
return record # Successful
elif result.rowcount > 1:
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()
log.debug(record_li)
log.setLevel(current_log_level) # Reset log level; should be decorator
return record_li # Successful
else:
log.info('No records found. Returning None.')
log.debug(result)
log.setLevel(current_log_level) # Reset log level; should be decorator
return None # Successful
# ### END ### Core Help CRUD ### sql_select() ###
@@ -666,6 +665,7 @@ def sql_select(
# The catch all SQL DELETE function - STI 2021-02-17
# This one does it all for SQL DELETE queries
# Updated 2021-09-07
@logger_reset
def sql_delete(
table_name: str|None = None,
record_id: int|None = None,
@@ -675,7 +675,7 @@ def sql_delete(
sql: str|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())
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 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
@logger_reset
def redis_lookup_id_random(
record_id_random: int|str,
table_name: str,
):
current_log_level = log.level
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
@@ -834,7 +834,6 @@ def redis_lookup_id_random(
elif isinstance(record_id_random, int): return record_id_random
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.setLevel(current_log_level) # Reset log level; should be decorator
return False
if record_id_random and table_name:
@@ -867,7 +866,7 @@ def redis_lookup_id_random(
if record_id:
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.setLevel(current_log_level) # Reset log level; should be decorator
return int(record_id)
elif table_name:
data = { 'id_random': record_id_random }
@@ -878,30 +877,25 @@ def redis_lookup_id_random(
"""
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(type(select_results))
if isinstance(select_results, dict):
log.info(f"""Record ID random found: {str(select_results['id'])}""")
if record_id := select_results.get('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)
else:
# log.setLevel(logging.ERROR) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.error('The SQL result was not what was expected.')
return False
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(select_results)
return False
else:
#log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.info('Record ID random was not found')
return None
# log.setLevel(logging.ERROR) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.error('We should not be here. Something unexpected happened.')
return False # Just in case
# ### END ### API DB SQL ### redis_lookup_id_random() ###
@@ -910,11 +904,12 @@ def redis_lookup_id_random(
# ### BEGIN ### API DB SQL ### get_id_random() ###
# Changed name from lookup_id_random() to get_id_random()
# Updated 2021-08-23
@logger_reset
def get_id_random(
record_id: int,
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())
data = { 'id': record_id }
@@ -952,10 +947,11 @@ def get_id_random(
# Look up and resolve id_random values to their id
# 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.
@logger_reset
def lookup_id_random_pop(
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())
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() ###
# Updated 2021-08-24
@logger_reset
def get_account_id_w_for_type_id(
for_type: str,
for_id: int|str,

View File

@@ -2,12 +2,11 @@ from __future__ import annotations
import datetime, jwt, pytz, redis, time
from passlib.hash import argon2
#from datetime import datetime, time, timedelta
from fastapi import APIRouter, Depends, Header, HTTPException, Response, status
from pydantic import BaseModel, EmailStr, Field
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
@@ -57,7 +56,9 @@ def verify_secure_hash_string(string:str, string_hash:str):
return False
# ### BEGIN ### API Lib General ### sign_jwt() ###
# Updated 2021-07-14
@logger_reset
def sign_jwt(
secret_key: str, # Secret/Private/Password
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)
return token
# ### END ### API Lib General ### sign_jwt() ###
# ### BEGIN ### API Lib General ### decode_jwt() ###
# Updated 2021-07-14
@logger_reset
def decode_jwt(
secret_key: str,
token: str,
@@ -106,3 +110,4 @@ def decode_jwt(
else: return False
except:
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(
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(
event_location_id: int|str,
enabled: str = 'enabled', # enabled, disabled, all
limit: int = 1000,
inc_event_device_list: bool = False,
inc_event_file_list: bool = False,
inc_event_presentation_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:
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
@@ -35,22 +39,19 @@ def load_event_location_obj(
else: return False
if event_location_rec := sql_select(table_name='v_event_location', record_id=event_location_id): pass
else:
return False
else: 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)
try:
log.info('Try to apply event location record data to Event_Location_Base...')
event_location_obj = Event_Location_Base(**event_location_rec)
log.debug(event_location_obj)
except ValidationError as e:
log.error(e.json())
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)
event_id = event_location_rec.get('event_id', None)
@@ -116,4 +117,80 @@ def load_event_location_obj(
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.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_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.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
@@ -22,11 +23,10 @@ from app.models.event_cfg_models import Event_Cfg_Base
# ### BEGIN ### API Event Methods ### load_event_obj() ###
def load_event_obj(
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
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_location: bool = False,
inc_contact: bool = False, # Loads all 3 contacts
@@ -57,8 +57,12 @@ def load_event_obj(
inc_product: bool = False,
inc_product_list: 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:
#log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
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
@@ -165,22 +169,59 @@ def load_event_obj(
if inc_event_device_list: pass
if inc_event_exhibit_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_presentation_list: pass
if inc_event_presenter_list: pass
# if inc_event_registration_cfg: pass
if inc_event_registration_list: pass
# Updated 2021-09-28
if inc_event_session_list:
log.info('Need to include event session list...')
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
if event_session_rec_list_result := get_event_session_rec_list(
event_id = event_id,
review = 'all', # ready, not_ready, all
enabled = enabled, # enabled, disabled, 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,
):
event_session_result_list = []
@@ -209,70 +250,6 @@ def load_event_obj(
else:
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_poc_event_person:

View File

@@ -25,10 +25,6 @@ def load_event_presentation_obj(
enabled: str = 'enabled', # enabled, disabled, all
hidden: str = 'not_hidden', # hidden, not_hidden, all
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: str = None,
event_file_priority: bool = None,
@@ -49,6 +45,10 @@ def load_event_presentation_obj(
inc_event_session: bool = False,
inc_person: 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:
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
@@ -75,9 +75,6 @@ def load_event_presentation_obj(
log.error(e.json())
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)
event_id = event_presentation_rec.get('event_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 == 'hidden':
data['hidden'] = True
sql_hidden = f'AND `event_presenter`.hidden = :hidden'
data['hide'] = True
sql_hidden = f'AND `event_presenter`.hide = :hide'
elif hidden == 'not_hidden':
data['hidden'] = False
sql_hidden = f'AND `event_presenter`.hidden = :hidden'
data['hide'] = False
sql_hidden = f'AND `event_presenter`.hide = :hide'
elif hidden == 'all':
sql_hidden = ''

View File

@@ -21,10 +21,6 @@ def load_event_presenter_obj(
enabled: str = 'enabled', # enabled, disabled, all
hidden: str = 'not_hidden', # hidden, not_hidden, all
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: str = None,
event_file_priority: bool = None,
@@ -43,6 +39,10 @@ def load_event_presenter_obj(
inc_event_session: bool = False,
inc_person: 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:
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
@@ -191,6 +191,7 @@ def load_event_presenter_obj(
def get_event_presenter_rec_list(
event_person_id: str = None,
event_presentation_id: str = None,
hidden: str = 'not_hidden', # hidden, not_hidden, all
enabled: str = 'enabled', # enabled, disabled, all
limit: int = 100,
) -> 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'
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 == 'enabled':
data['enable'] = True
@@ -233,6 +244,7 @@ def get_event_presenter_rec_list(
WHERE
{sql_where_event_person_id}
{sql_where_event_presentation_id}
{sql_hidden}
{sql_enabled}
ORDER BY `event_presenter`.created_on DESC, `event_presenter`.updated_on DESC
{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() ###
def load_event_session_obj(
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
hidden: str = 'not_hidden', # hidden, not_hidden, all
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_person: 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:
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
@@ -159,11 +159,11 @@ def load_event_session_obj(
if hidden in ['hidden', 'not_hidden', 'all']:
if hidden == 'hidden':
data['hidden'] = True
sql_hidden = f'AND `event_presentation`.hidden = :hidden'
data['hide'] = True
sql_hidden = f'AND `event_presentation`.hide = :hide'
elif hidden == 'not_hidden':
data['hidden'] = False
sql_hidden = f'AND `event_presentation`.hidden = :hidden'
data['hide'] = False
sql_hidden = f'AND `event_presentation`.hide = :hide'
elif hidden == 'all':
sql_hidden = ''
@@ -271,10 +271,10 @@ def load_event_session_obj(
# ### BEGIN ### API Event Session Methods ### get_event_session_rec_list() ###
def get_event_session_rec_list(
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
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,
) -> list|bool:
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 == 'hidden':
data['hidden'] = True
sql_hidden = f'AND `event_session`.hidden = :hidden'
data['hide'] = True
sql_hidden = f'AND `event_session`.hide = :hide'
elif hidden == 'not_hidden':
data['hidden'] = False
sql_hidden = f'AND `event_session`.hidden = :hidden'
data['hide'] = False
sql_hidden = f'AND `event_session`.hide = :hide'
elif hidden == 'all':
sql_hidden = ''
@@ -347,6 +347,8 @@ def get_event_session_rec_list(
{sql_limit};
"""
log.debug(sql)
if event_session_rec_li_result := sql_select(data=data, sql=sql, as_list=True):
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_size: Optional[str]
enable_event_file_approval_option: Optional[bool]
file_count: 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:
event_id = event_obj.get('event_id', None)
if event_obj := load_event_obj(
event_id=event_id,
enabled=enabled,
inc_event_abstract_list=inc_event_abstract_list,
inc_event_badge_list=inc_event_badge_list,
inc_event_device_list=inc_event_device_list,
inc_event_exhibit_list=inc_event_exhibit_list,
inc_event_file_list=inc_event_file_list,
inc_event_location_list=inc_event_location_list,
inc_event_person_list=inc_event_person_list,
inc_event_presentation_list=inc_event_presentation_list,
inc_event_presenter_list=inc_event_presenter_list,
inc_event_registration_list=inc_event_registration_list,
inc_event_session_list=inc_event_session_list,
inc_event_track_list=inc_event_track_list,
inc_event_cfg=inc_event_cfg,
inc_event_registration_cfg=inc_event_registration_cfg,
inc_poc_event_person=inc_poc_event_person,
# inc_poc_person=inc_poc_person,
inc_user=inc_user,
event_id = event_id,
enabled = enabled,
inc_event_abstract_list = inc_event_abstract_list,
inc_event_badge_list = inc_event_badge_list,
inc_event_device_list = inc_event_device_list,
inc_event_exhibit_list = inc_event_exhibit_list,
inc_event_file_list = inc_event_file_list,
inc_event_location_list = inc_event_location_list,
inc_event_person_list = inc_event_person_list,
inc_event_presentation_list = inc_event_presentation_list,
inc_event_presenter_list = inc_event_presenter_list,
inc_event_registration_list = inc_event_registration_list,
inc_event_session_list = inc_event_session_list,
inc_event_track_list = inc_event_track_list,
inc_event_cfg = inc_event_cfg,
inc_event_registration_cfg = inc_event_registration_cfg,
inc_poc_event_person = inc_poc_event_person,
# inc_poc_person = inc_poc_person,
inc_user = inc_user,
):
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)
async def get_event_obj(
event_id: str = Query(..., min_length=1, max_length=22),
enabled: str = 'enabled', # For now this covers any included objects or object lists
limit: int = 500, # For now this covers any included objects or object lists
enabled: str = 'enabled', # enabled, disabled, all
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_location: bool = False,
inc_contact: bool = False,
@@ -241,11 +243,12 @@ async def get_event_obj(
inc_product_list: bool = False,
inc_user: bool = False,
x_account_id: str = Header(...),
limit: int = 500, # For now this covers any included objects or object lists
by_alias: Optional[bool] = True,
exclude_unset: Optional[bool] = True,
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())
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(
event_id = event_id,
limit = limit,
by_alias = by_alias,
exclude_unset = exclude_unset,
# model_as_dict = model_as_dict,
enabled = enabled,
approved = approved,
hidden = hidden,
review = review,
inc_address = inc_address,
# inc_address_location = inc_address_location,
inc_contact = inc_contact,
@@ -287,6 +289,10 @@ async def get_event_obj(
# inc_product = inc_product,
# inc_product_list = inc_product_list,
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)
pass