A lot of work on event related modules. Also a lot of clean up
This commit is contained in:
@@ -3,7 +3,7 @@ import datetime, pytz, redis, secrets
|
||||
from timeit import default_timer as timer
|
||||
|
||||
from app.config import settings
|
||||
from .log import *
|
||||
from app.log import log, logging
|
||||
#from .lib_general import lookup_id_random_pop
|
||||
|
||||
from sqlalchemy import create_engine, text, Time
|
||||
@@ -741,6 +741,7 @@ def redis_lookup_id_random(record_id_random:int|str, table_name:str):
|
||||
# ### BEGIN ### API Lib General ### lookup_id_random_pop() ###
|
||||
# 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.
|
||||
def lookup_id_random_pop(obj_data:dict):
|
||||
#log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(locals())
|
||||
@@ -769,14 +770,66 @@ def lookup_id_random_pop(obj_data:dict):
|
||||
obj_data['event_id'] = redis_lookup_id_random(record_id_random=obj_data.get('event_id_random', None), table_name='event')
|
||||
obj_data.pop('event_id_random')
|
||||
|
||||
if 'event_abstract_id_random' in obj_data:
|
||||
obj_data['event_abstract_id'] = redis_lookup_id_random(record_id_random=obj_data.get('event_abstract_id_random', None), table_name='event_abstract')
|
||||
obj_data.pop('event_abstract_id_random')
|
||||
|
||||
if 'event_badge_id_random' in obj_data:
|
||||
obj_data['event_badge_id'] = redis_lookup_id_random(record_id_random=obj_data.get('event_badge_id_random', None), table_name='event_badge')
|
||||
obj_data.pop('event_badge_id_random')
|
||||
|
||||
if 'event_exhibit_id_random' in obj_data:
|
||||
obj_data['event_exhibit_id'] = redis_lookup_id_random(record_id_random=obj_data.get('event_exhibit_id_random', None), table_name='event_exhibit')
|
||||
obj_data.pop('event_exhibit_id_random')
|
||||
|
||||
if 'event_file_id_random' in obj_data:
|
||||
obj_data['event_file_id'] = redis_lookup_id_random(record_id_random=obj_data.get('event_file_id_random', None), table_name='event_file')
|
||||
obj_data.pop('event_file_id_random')
|
||||
|
||||
if 'event_location_id_random' in obj_data:
|
||||
obj_data['event_location_id'] = redis_lookup_id_random(record_id_random=obj_data.get('event_location_id_random', None), table_name='event_location')
|
||||
obj_data.pop('event_location_id_random')
|
||||
|
||||
if 'event_person_id_random' in obj_data:
|
||||
obj_data['event_person_id'] = redis_lookup_id_random(record_id_random=obj_data.get('event_person_id_random', None), table_name='event_person')
|
||||
obj_data.pop('event_person_id_random')
|
||||
|
||||
if 'event_presentation_id_random' in obj_data:
|
||||
obj_data['event_presentation_id'] = redis_lookup_id_random(record_id_random=obj_data.get('event_presentation_id_random', None), table_name='event_presentation')
|
||||
obj_data.pop('event_presentation_id_random')
|
||||
|
||||
if 'event_presenter_id_random' in obj_data:
|
||||
obj_data['event_presenter_id'] = redis_lookup_id_random(record_id_random=obj_data.get('event_presenter_id_random', None), table_name='event_presenter')
|
||||
obj_data.pop('event_presenter_id_random')
|
||||
|
||||
if 'event_registration_id_random' in obj_data:
|
||||
obj_data['event_registration_id'] = redis_lookup_id_random(record_id_random=obj_data.get('event_registration_id_random', None), table_name='event_registration')
|
||||
obj_data.pop('event_registration_id_random')
|
||||
|
||||
if 'event_session_id_random' in obj_data:
|
||||
obj_data['event_session_id'] = redis_lookup_id_random(record_id_random=obj_data.get('event_session_id_random', None), table_name='event_session')
|
||||
obj_data.pop('event_session_id_random')
|
||||
|
||||
if 'event_track_id_random' in obj_data:
|
||||
obj_data['event_track_id'] = redis_lookup_id_random(record_id_random=obj_data.get('event_track_id_random', None), table_name='event_track')
|
||||
obj_data.pop('event_track_id_random')
|
||||
|
||||
if 'hosted_file_id_random' in obj_data:
|
||||
obj_data['hosted_file_id'] = redis_lookup_id_random(record_id_random=obj_data.get('hosted_file_id_random', None), table_name='hosted_file')
|
||||
obj_data.pop('hosted_file_id_random')
|
||||
|
||||
if 'journal_file_id_random' in obj_data:
|
||||
obj_data['journal_file_id'] = redis_lookup_id_random(record_id_random=obj_data.get('journal_file_id_random', None), table_name='journal_file')
|
||||
obj_data.pop('journal_file_id_random')
|
||||
|
||||
if 'journal_entry_file_id_random' in obj_data:
|
||||
obj_data['journal_entry_file_id'] = redis_lookup_id_random(record_id_random=obj_data.get('journal_entry_file_id_random', None), table_name='journal_entry_file')
|
||||
obj_data.pop('journal_entry_file_id_random')
|
||||
|
||||
if 'membership_entry_file_id_random' in obj_data:
|
||||
obj_data['membership_entry_file_id'] = redis_lookup_id_random(record_id_random=obj_data.get('membership_entry_file_id_random', None), table_name='membership_entry_file')
|
||||
obj_data.pop('membership_entry_file_id_random')
|
||||
|
||||
if 'order_id_random' in obj_data:
|
||||
obj_data['order_id'] = redis_lookup_id_random(record_id_random=obj_data.get('order_id_random', None), table_name='order')
|
||||
obj_data.pop('order_id_random')
|
||||
@@ -797,10 +850,22 @@ def lookup_id_random_pop(obj_data:dict):
|
||||
obj_data['organization_id'] = redis_lookup_id_random(record_id_random=obj_data.get('organization_id_random', None), table_name='organization')
|
||||
obj_data.pop('organization_id_random')
|
||||
|
||||
if 'page_id_random' in obj_data:
|
||||
obj_data['page_id'] = redis_lookup_id_random(record_id_random=obj_data['page_id_random'], table_name='page')
|
||||
obj_data.pop('page_id_random')
|
||||
|
||||
if 'person_id_random' in obj_data:
|
||||
obj_data['person_id'] = redis_lookup_id_random(record_id_random=obj_data['person_id_random'], table_name='person')
|
||||
obj_data.pop('person_id_random')
|
||||
|
||||
if 'poc_event_person_id_random' in obj_data:
|
||||
obj_data['poc_event_person_id'] = redis_lookup_id_random(record_id_random=obj_data['poc_event_person_id_random'], table_name='event_person')
|
||||
obj_data.pop('poc_event_person_id_random')
|
||||
|
||||
if 'poc_person_id_random' in obj_data:
|
||||
obj_data['poc_person_id'] = redis_lookup_id_random(record_id_random=obj_data['poc_person_id_random'], table_name='person')
|
||||
obj_data.pop('poc_person_id_random')
|
||||
|
||||
if 'post_id_random' in obj_data:
|
||||
obj_data['post_id'] = redis_lookup_id_random(record_id_random=obj_data.get('post_id_random', None), table_name='post')
|
||||
obj_data.pop('post_id_random')
|
||||
@@ -809,6 +874,10 @@ def lookup_id_random_pop(obj_data:dict):
|
||||
obj_data['product_id'] = redis_lookup_id_random(record_id_random=obj_data['product_id_random'], table_name='product')
|
||||
obj_data.pop('product_id_random')
|
||||
|
||||
if 'site_id_random' in obj_data:
|
||||
obj_data['site_id'] = redis_lookup_id_random(record_id_random=obj_data['site_id_random'], table_name='site')
|
||||
obj_data.pop('site_id_random')
|
||||
|
||||
if 'user_id_random' in obj_data:
|
||||
obj_data['user_id'] = redis_lookup_id_random(record_id_random=obj_data['user_id_random'], table_name='user')
|
||||
obj_data.pop('user_id_random')
|
||||
|
||||
@@ -7,8 +7,8 @@ from fastapi import APIRouter, Depends, Header, HTTPException, status
|
||||
from pydantic import BaseModel, EmailStr, Field
|
||||
from typing import Dict, List, Optional, Set, Union
|
||||
|
||||
from .log import *
|
||||
from .db_sql import sql_select
|
||||
from app.log import *
|
||||
from app.db_sql import sql_select
|
||||
|
||||
|
||||
# ### BEGIN ### API Lib General ### async get_token_header() ###
|
||||
|
||||
16
app/main.py
16
app/main.py
@@ -14,13 +14,13 @@ from sqlalchemy import create_engine, text
|
||||
from sqlalchemy.exc import IntegrityError, OperationalError
|
||||
|
||||
from . import config
|
||||
from .lib_general import *
|
||||
from .log import *
|
||||
from app.lib_general import *
|
||||
from app.log import log
|
||||
|
||||
# Import the routers here first:
|
||||
from .routers import api_crud, api, account, address, archive, archive_content, contact, event, event_exhibit, event_person, event_person_detail, event_registration, event_session, flask_cfg, hosted_file, journal, journal_entry, lookup, membership, order, order_cart, organization, page, person, post, post_comment, product, site, site_domain, user, user_person, websockets # , items, journals
|
||||
from app.routers import api_crud, api, account, address, archive, archive_content, contact, event, event_exhibit, event_person, event_person_detail, event_presenter, event_registration, event_session, flask_cfg, hosted_file, journal, journal_entry, lookup, membership, order, order_cart, organization, page, person, post, post_comment, product, site, site_domain, user, user_person, websockets # , items, journals
|
||||
|
||||
from .db_sql import db
|
||||
from app.db_sql import db
|
||||
|
||||
|
||||
print('### **** *** ** * The Aether FastAPI API app is loading... * ** *** **** ###')
|
||||
@@ -142,6 +142,14 @@ app.include_router(
|
||||
#dependencies=[Depends(get_account_header)],
|
||||
#responses={404: {'description': 'Not found'}},
|
||||
)
|
||||
app.include_router(
|
||||
event_presenter.router,
|
||||
prefix='/event/presenter',
|
||||
tags=['Event Presenter'],
|
||||
#dependencies=[DependPresenter(get_token_header)],
|
||||
#dependencies=[Depends(get_account_header)],
|
||||
#responses={404: {'description': 'Not found'}},
|
||||
)
|
||||
app.include_router(
|
||||
event_registration.router,
|
||||
prefix='/event/registration',
|
||||
|
||||
@@ -11,10 +11,10 @@ from app.lib_general import log, logging
|
||||
# from app.methods.event_badge_methods import load_event_badge_obj
|
||||
# from app.methods.event_exhibit_methods import load_event_exhibit_obj
|
||||
# from app.methods.event_file_methods import load_event_file_obj
|
||||
from app.methods.event_presentation_methods import load_event_presentation_obj
|
||||
from app.methods.event_presenter_methods import load_event_presenter_obj
|
||||
# from app.methods.event_presentation_methods import load_event_presentation_obj
|
||||
# from app.methods.event_presenter_methods import load_event_presenter_obj
|
||||
# from app.methods.event_registration_methods import load_event_registration_obj
|
||||
from app.methods.event_session_methods import load_event_session_obj
|
||||
# from app.methods.event_session_methods import load_event_session_obj
|
||||
# from app.methods.event_track_methods import load_event_track_obj
|
||||
from app.methods.person_methods import load_person_obj
|
||||
from app.methods.user_methods import load_user_obj
|
||||
|
||||
@@ -8,6 +8,7 @@ from app.db_sql import redis_lookup_id_random, sql_insert, sql_select, sql_updat
|
||||
from app.lib_general import log, logging
|
||||
|
||||
# from app.methods.event_file_methods import load_event_file_obj
|
||||
from app.methods.event_person_methods import load_event_person_obj
|
||||
# from app.methods.event_presenter_methods import load_event_presenter_obj
|
||||
# from app.methods.person_methods import load_person_obj
|
||||
# from app.methods.user_methods import load_user_obj
|
||||
@@ -20,15 +21,18 @@ def load_event_presenter_obj(
|
||||
event_presenter_id: int|str,
|
||||
enabled: str = 'enabled', # enabled, disabled, all
|
||||
limit: int = 1000,
|
||||
inc_event_abstract_list: bool = False,
|
||||
inc_event_badge: bool = False,
|
||||
inc_event_device_list: bool = False,
|
||||
inc_event_file_list: bool = False,
|
||||
inc_event_person: bool = False,
|
||||
inc_person: bool = False,
|
||||
inc_user: bool = False,
|
||||
inc_event_abstract_list: bool = False, # For event_presenter and using load_event_person_obj
|
||||
inc_event_badge: bool = False, # Using load_event_person_obj
|
||||
inc_event_device_list: bool = False, # For event_presenter and using load_event_person_obj
|
||||
inc_event_file_list: bool = False, # For event_presenter and using load_event_person_obj
|
||||
inc_event_person: bool = False, # Using load_event_person_obj
|
||||
# inc_event_presentation: bool = False,
|
||||
inc_event_registration: bool = False, # Using load_event_person_obj
|
||||
# inc_event_session: bool = False,
|
||||
inc_person: bool = False, # Using load_event_person_obj
|
||||
inc_user: bool = False, # Using load_event_person_obj
|
||||
) -> Event_Presenter_Base|bool:
|
||||
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_presenter_id := redis_lookup_id_random(record_id_random=event_presenter_id, table_name='event_presenter'): pass
|
||||
@@ -48,10 +52,6 @@ def load_event_presenter_obj(
|
||||
# event_presenter_obj = Event_Presenter_Base(**event_presenter_rec)
|
||||
# log.debug(event_presenter_obj)
|
||||
|
||||
return False
|
||||
|
||||
# *** ** * Everything below needs to be reviewed * ** ***
|
||||
|
||||
#account_id = event_presenter_rec.get('account_id', None)
|
||||
event_id = event_presenter_rec.get('event_id', None)
|
||||
event_abstract_id = event_presenter_rec.get('event_abstract_id', None)
|
||||
@@ -61,17 +61,21 @@ def load_event_presenter_obj(
|
||||
person_id = event_presenter_rec.get('person_id', None)
|
||||
user_id = event_presenter_rec.get('user_id', None)
|
||||
|
||||
#if inc_event: pass
|
||||
# if inc_event: pass
|
||||
if inc_event_abstract_list: pass
|
||||
#if inc_event_badge_list: pass
|
||||
if inc_event_device_list: pass
|
||||
if inc_event_file_list: pass
|
||||
|
||||
if inc_event_person:
|
||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
|
||||
if event_person_obj := load_event_person_obj(
|
||||
event_person_id=event_person_id,
|
||||
enabled=enabled
|
||||
enabled=enabled,
|
||||
inc_event_badge=inc_event_badge,
|
||||
inc_event_registration=inc_event_registration,
|
||||
inc_person=inc_person,
|
||||
inc_user=inc_user,
|
||||
):
|
||||
log.debug(event_person_obj)
|
||||
event_presenter_obj.event_person = event_person_obj
|
||||
@@ -79,20 +83,21 @@ def load_event_presenter_obj(
|
||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(event_person_obj)
|
||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
if inc_person:
|
||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
|
||||
if person_obj := load_person_obj(
|
||||
person_id=person_id,
|
||||
enabled=enabled
|
||||
):
|
||||
log.debug(person_obj)
|
||||
presenter_obj.person = person_obj
|
||||
else:
|
||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(person_obj)
|
||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
#if inc_user: pass
|
||||
# if inc_person:
|
||||
# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
|
||||
# if person_obj := load_person_obj(
|
||||
# person_id=person_id,
|
||||
# enabled=enabled
|
||||
# ):
|
||||
# log.debug(person_obj)
|
||||
# presenter_obj.person = person_obj
|
||||
# else:
|
||||
# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
# log.debug(person_obj)
|
||||
# log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
# if inc_user: pass
|
||||
else:
|
||||
return False
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ def load_event_session_obj(
|
||||
inc_event_registration_list: bool = False,
|
||||
inc_event_track: bool = False,
|
||||
inc_poc_event_person: bool = False,
|
||||
inc_poc_person: bool = False,
|
||||
# inc_poc_person: bool = False,
|
||||
# inc_user: bool = False,
|
||||
) -> Event_Session_Base|bool:
|
||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
|
||||
@@ -7,7 +7,7 @@ from pydantic import BaseModel, EmailStr, Field, Json, PrivateAttr, ValidationEr
|
||||
from app.db_sql import redis_lookup_id_random
|
||||
from app.lib_general import *
|
||||
|
||||
from .common_field_schema import base_fields, default_num_bytes
|
||||
from app.common_field_schema import base_fields, default_num_bytes
|
||||
|
||||
|
||||
class Core_Object_Base(BaseModel):
|
||||
|
||||
@@ -9,12 +9,13 @@ from app.lib_general import log, logging
|
||||
|
||||
from .common_field_schema import base_fields, default_num_bytes
|
||||
|
||||
#from .event_models import Event_Base
|
||||
# from .event_models import Event_Base
|
||||
from .event_abstract_models import Event_Abstract_Base
|
||||
from .event_person_models import Event_Person_Base
|
||||
from .event_presentation_models import Event_Presentation_Base
|
||||
from .event_session_models import Event_Session_Base
|
||||
from .person_models import Person_Base
|
||||
# from .person_models import Person_Base
|
||||
# from .user_models import User_Base
|
||||
|
||||
|
||||
class Event_Presenter_Base(BaseModel):
|
||||
@@ -94,17 +95,18 @@ class Event_Presenter_Base(BaseModel):
|
||||
updated_on: Optional[datetime.datetime] = None
|
||||
|
||||
# Including other related objects
|
||||
#event: Optional[Event_Base]
|
||||
# event: Optional[Event_Base]
|
||||
event_abstract: Optional[Event_Abstract_Base]
|
||||
event_abstract_list: Optional[list] # Optional[Event_Abstract_Base] Is more than one abstract allowed per presenter?
|
||||
#event_device_list: Optional[list] # Optional[Event_Device_Base]
|
||||
# event_device_list: Optional[list] # Optional[Event_Device_Base]
|
||||
event_file_list: Optional[list] # Optional[Event_File_Base]
|
||||
#event_location: Optional[Event_Location_Base]
|
||||
# event_location: Optional[Event_Location_Base]
|
||||
event_person: Optional[Event_Person_Base]
|
||||
event_presentation: Optional[Event_Presentation_Base]
|
||||
event_session: Optional[Event_Session_Base]
|
||||
#event_track: Optional[Event_Track_Base]
|
||||
person: Optional[Person_Base]
|
||||
# event_track: Optional[Event_Track_Base]
|
||||
# person: Optional[Person_Base] # This is under event_person
|
||||
# user: Optional[User_Base] # This is under event_person
|
||||
|
||||
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
|
||||
|
||||
|
||||
@@ -17,10 +17,17 @@ from app.models.archive_models import *
|
||||
from app.models.archive_content_models import *
|
||||
from app.models.contact_models import *
|
||||
from app.models.event_models import *
|
||||
from app.models.event_abstract_models import *
|
||||
from app.models.event_badge_models import *
|
||||
from app.models.event_exhibit_models import *
|
||||
#from app.models.event_file_models import *
|
||||
from app.models.event_location_models import *
|
||||
from app.models.event_person_models import *
|
||||
from app.models.event_presentation_models import *
|
||||
from app.models.event_presenter_models import *
|
||||
from app.models.event_registration_models import *
|
||||
from app.models.event_session_models import *
|
||||
from app.models.event_track_models import *
|
||||
from app.models.journal_entry_models import *
|
||||
from app.models.membership_models import *
|
||||
from app.models.order_models import *
|
||||
@@ -54,18 +61,19 @@ obj_type_li['archive_content'] = {'table_name': 'v_archive_content', 'base_name'
|
||||
obj_type_li['contact'] = {'table_name': 'v_contact', 'base_name': Contact_Base}
|
||||
#obj_type_li['cont_edu_cert'] = {'table_name': 'cont_edu_cert', 'base_name': Cont_Edu_Cert_Base}
|
||||
obj_type_li['event'] = {'table_name': 'v_event', 'base_name': Event_Base}
|
||||
#obj_type_li['event_badge'] = {'table_name': 'event_badge', 'base_name': Event_Badge_Base}
|
||||
obj_type_li['event_badge'] = {'table_name': 'event_badge', 'base_name': Event_Badge_Base}
|
||||
#obj_type_li['event_badge_log'] = {'table_name': 'event_badge_log', 'base_name': Event_Badge_Log_Base}
|
||||
#obj_type_li['event_badge_template'] = {'table_name': 'event_badge_template', 'base_name': Event_Badge_Template_Base}
|
||||
#obj_type_li['event_device'] = {'table_name': 'event_device', 'base_name': Event_Device_Base}
|
||||
obj_type_li['event_exhibit'] = {'table_name': 'v_event_exhibit', 'base_name': Event_Exhibit_Base} # NOTE check view name: *_detail?
|
||||
#obj_type_li['event_file'] = {'table_name': 'v_event_file', 'base_name': Event_File_Base} # Should this eventually be changed to event_hosted_file
|
||||
obj_type_li['event_location'] = {'table_name': 'v_event_location', 'base_name': Event_Location_Base}
|
||||
#obj_type_li['event_presentation'] = {'table_name': 'v_event_presentation', 'base_name': Event_Presentation_Base}
|
||||
#obj_type_li['event_presenter'] = {'table_name': 'v_event_presenter', 'base_name': Event_Presenter_Base}
|
||||
obj_type_li['event_person'] = {'table_name': 'v_event_person', 'base_name': Event_Person_Base}
|
||||
obj_type_li['event_presentation'] = {'table_name': 'v_event_presentation', 'base_name': Event_Presentation_Base}
|
||||
obj_type_li['event_presenter'] = {'table_name': 'v_event_presenter', 'base_name': Event_Presenter_Base}
|
||||
obj_type_li['event_registration'] = {'table_name': 'v_event_registration', 'base_name': Event_Registration_Base}
|
||||
#obj_type_li['event_session'] = {'table_name': 'v_event_session', 'base_name': Event_Session_Base}
|
||||
#obj_type_li['event_track'] = {'table_name': 'v_event_track', 'base_name': Event_Track_Base}
|
||||
obj_type_li['event_session'] = {'table_name': 'v_event_session', 'base_name': Event_Session_Base}
|
||||
obj_type_li['event_track'] = {'table_name': 'v_event_track', 'base_name': Event_Track_Base}
|
||||
#obj_type_li['hosted_file'] = {'table_name': 'hosted_file', 'base_name': Hosted_File_Base}
|
||||
#obj_type_li['hosted_file_link'] = {'table_name': 'hosted_file_link', 'base_name': Hosted_File_Link_Base}
|
||||
#obj_type_li['journal'] = {'table_name': 'v_journal', 'base_name': Journal_Base}
|
||||
|
||||
@@ -5,11 +5,11 @@ from pydantic import BaseModel, EmailStr, Field
|
||||
from typing import Dict, List, Optional, Set, Union
|
||||
|
||||
from app.lib_general import *
|
||||
from ..log import *
|
||||
# from ..log import *
|
||||
from app.config import settings
|
||||
from app.db_sql import *
|
||||
|
||||
from .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_methods import load_event_obj
|
||||
|
||||
|
||||
@@ -24,6 +24,11 @@ from app.models.user_models import User_New_Base, User_Base
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
# ### BEGIN ### API Event Person Route ### post_event_person_new() ###
|
||||
# Initialize/create a new event person
|
||||
# Create a person record (with a contact record and an address for the contact record)
|
||||
# Create a user record
|
||||
# Create an event_person record with the new person and user IDs
|
||||
@router.post('/new', response_model=Resp_Body_Base)
|
||||
async def post_event_person_new(
|
||||
event_person_new_init: Event_Person_New_Base,
|
||||
@@ -97,8 +102,6 @@ async def post_event_person_new(
|
||||
log.debug('A new person was not created')
|
||||
return mk_resp(data=False)
|
||||
|
||||
#return mk_resp(data=person_obj)
|
||||
|
||||
# New user
|
||||
user_new = {}
|
||||
user_new['account_id_random'] = account_id_random
|
||||
@@ -124,8 +127,6 @@ async def post_event_person_new(
|
||||
log.debug('A new user was not created')
|
||||
return mk_resp(data=False)
|
||||
|
||||
#return mk_resp(data=user_obj)
|
||||
|
||||
# New event person
|
||||
event_person_new = {}
|
||||
event_person_new['account_id_random'] = account_id_random
|
||||
@@ -158,12 +159,15 @@ async def post_event_person_new(
|
||||
event_person_obj.user = user_obj
|
||||
|
||||
log.debug(event_person_obj)
|
||||
event_person_dict = event_person_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
||||
pass
|
||||
else:
|
||||
log.debug('A new event_person was not created')
|
||||
return mk_resp(data=False)
|
||||
|
||||
log.debug(event_person_obj)
|
||||
return mk_resp(data=event_person_obj)
|
||||
return mk_resp(data=event_person_dict)
|
||||
#return mk_resp(data=event_person_obj)
|
||||
# ### BEGIN ### API Event Person Route ### post_event_person_new() ###
|
||||
|
||||
|
||||
# ### BEGIN ### API Event Person ### get_event_person_obj() ###
|
||||
|
||||
@@ -9,7 +9,7 @@ from app.lib_general import log, logging
|
||||
from app.config import settings
|
||||
from app.db_sql import *
|
||||
|
||||
from .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.models.event_person_detail_models import Event_Person_Detail_Base
|
||||
from app.models.response_models import *
|
||||
|
||||
261
app/routers/event_presenter.py
Normal file
261
app/routers/event_presenter.py
Normal file
@@ -0,0 +1,261 @@
|
||||
import datetime
|
||||
#from datetime import datetime, time, timedelta
|
||||
from fastapi import APIRouter, Body, Depends, Header, HTTPException, Query, status
|
||||
from pydantic import BaseModel, EmailStr, Field
|
||||
from typing import Dict, List, Optional, Set, Union
|
||||
|
||||
from app.lib_general import log, logging
|
||||
#from ..log import *
|
||||
from app.config import settings
|
||||
from app.db_sql import *
|
||||
|
||||
from .api_crud import delete_obj_template, get_obj_template, get_obj_li_template, patch_obj_template, post_obj_template
|
||||
|
||||
from app.methods.event_presenter_methods import load_event_presenter_obj
|
||||
|
||||
from app.models.event_presenter_models import Event_Presenter_Base
|
||||
from app.models.response_models import *
|
||||
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.post('', response_model=Resp_Body_Base)
|
||||
async def post_event_presenter_obj(
|
||||
obj: Event_Presenter_Base,
|
||||
x_account_id: str = Header(...),
|
||||
return_obj: Optional[bool] = True,
|
||||
by_alias: Optional[bool] = True,
|
||||
exclude_unset: Optional[bool] = True,
|
||||
):
|
||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(locals())
|
||||
|
||||
obj_type = 'event_presenter'
|
||||
obj_data_dict = obj.dict(by_alias=False, exclude_unset=True)
|
||||
result = post_obj_template(
|
||||
obj_type=obj_type,
|
||||
data=obj_data_dict,
|
||||
return_obj=True,
|
||||
by_alias=True,
|
||||
exclude_unset=True,
|
||||
)
|
||||
return result
|
||||
|
||||
|
||||
@router.patch('/{obj_id}', response_model=Resp_Body_Base)
|
||||
async def patch_event_presenter_obj(
|
||||
obj: Event_Presenter_Base,
|
||||
obj_id: str = Query(..., min_length=1, max_length=22),
|
||||
x_account_id: Optional[str] = Header(..., ),
|
||||
return_obj: Optional[bool] = True,
|
||||
by_alias: Optional[bool] = True,
|
||||
exclude_unset: Optional[bool] = True,
|
||||
):
|
||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(locals())
|
||||
|
||||
obj_type = 'event_presenter'
|
||||
obj_data_dict = obj.dict(by_alias=False, exclude_unset=True)
|
||||
obj_data_dict['id'] = redis_lookup_id_random(record_id_random=obj_id, table_name=obj_type)
|
||||
obj_data_dict['id_random'] = obj_id
|
||||
result = patch_obj_template(
|
||||
obj_type=obj_type,
|
||||
data=obj_data_dict,
|
||||
obj_id=obj_id,
|
||||
return_obj=True,
|
||||
by_alias=True,
|
||||
exclude_unset=True,
|
||||
)
|
||||
return result
|
||||
|
||||
|
||||
@router.get('/list', response_model=Resp_Body_Base)
|
||||
async def get_event_presenter_obj_li(
|
||||
for_obj_type: Optional[str] = Query(None, min_length=2, max_length=50), # account
|
||||
for_obj_id: Optional[str] = Query(None, min_length=1, max_length=22),
|
||||
enabled: str = 'enabled', # enabled, disabled, all
|
||||
limit: int = 500,
|
||||
inc_event_abstract_list: bool = False, # Part of event_presenter and under event_person obj
|
||||
inc_event_badge: bool = False, # Under event_person obj
|
||||
inc_event_device_list: bool = False, # Part of event_presenter and under event_person obj
|
||||
inc_event_file_list: bool = False, # Part of event_presenter and under event_person obj
|
||||
inc_event_person: bool = False,
|
||||
inc_event_registration: bool = False, # Under event_person obj
|
||||
inc_person: bool = False, # Under event_person obj
|
||||
inc_user: bool = False, # Under event_person obj
|
||||
x_account_id: str = Header(...),
|
||||
by_alias: bool = True,
|
||||
exclude_unset: bool = True,
|
||||
):
|
||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(locals())
|
||||
|
||||
data = {}
|
||||
if for_obj_type == 'account' and for_obj_id:
|
||||
data['account_id'] = redis_lookup_id_random(record_id_random=for_obj_id, table_name='account')
|
||||
sql_for_obj_type_id = f'`event`.account_id = :account_id'
|
||||
elif for_obj_type == 'event' and for_obj_id:
|
||||
data['event_id'] = redis_lookup_id_random(record_id_random=for_obj_id, table_name='event')
|
||||
sql_for_obj_type_id = f'`event_presenter`.event_id = :event_id'
|
||||
elif for_obj_type == 'event_location' and for_obj_id: # NOTE: This needs to be checked and probably changed
|
||||
data['event_location_id'] = redis_lookup_id_random(record_id_random=for_obj_id, table_name='event_location')
|
||||
sql_for_obj_type_id = f'`event_presenter`.event_location_id = :event_location_id'
|
||||
elif for_obj_type == 'event_presentation' and for_obj_id:
|
||||
data['event_presentation_id'] = redis_lookup_id_random(record_id_random=for_obj_id, table_name='event_presentation')
|
||||
sql_for_obj_type_id = f'`event_presenter`.event_presentation_id = :event_presentation_id'
|
||||
elif for_obj_type == 'event_session' and for_obj_id:
|
||||
data['event_session_id'] = redis_lookup_id_random(record_id_random=for_obj_id, table_name='event_session')
|
||||
sql_for_obj_type_id = f'`event_presenter`.event_session_id = :event_session_id'
|
||||
elif for_obj_type == 'event_track' and for_obj_id: # NOTE: This needs to be checked and probably changed
|
||||
data['event_track_id'] = redis_lookup_id_random(record_id_random=for_obj_id, table_name='event_track')
|
||||
sql_for_obj_type_id = f'`event_presenter`.event_track_id = :event_track_id'
|
||||
else:
|
||||
sql_for_obj_type_id = ''
|
||||
return mk_resp(data=False, status_code=400)
|
||||
|
||||
if enabled in ['enabled', 'disabled', 'all']:
|
||||
if enabled == 'enabled':
|
||||
data['enable'] = True
|
||||
sql_enabled = f'AND `event_presenter`.enable = :enable'
|
||||
elif enabled == 'disabled':
|
||||
data['enable'] = False
|
||||
sql_enabled = f'AND `event_presenter`.enable = :enable'
|
||||
elif enabled == 'all':
|
||||
sql_enabled = ''
|
||||
else:
|
||||
return mk_resp(data=False, status_code=400)
|
||||
|
||||
if limit:
|
||||
data['limit'] = limit
|
||||
sql_limit = f'LIMIT :limit'
|
||||
else:
|
||||
sql_limit = ''
|
||||
|
||||
sql = f"""
|
||||
SELECT `event_presenter`.id AS 'event_presenter_id', `event_presenter`.id_random AS 'event_presenter_id_random'
|
||||
FROM `event_presenter` AS `event_presenter`
|
||||
WHERE {sql_for_obj_type_id}
|
||||
{sql_enabled}
|
||||
ORDER BY `event_presenter`.created_on DESC, `event_presenter`.updated_on DESC
|
||||
{sql_limit};
|
||||
"""
|
||||
|
||||
if event_presenter_li_result := sql_select(data=data, sql=sql, as_list=True):
|
||||
log.debug(event_presenter_li_result)
|
||||
event_presenter_li = []
|
||||
for event_presenter in event_presenter_li_result:
|
||||
event_presenter_id = event_presenter.get('event_presenter_id', None)
|
||||
if event_presenter_obj := load_event_presenter_obj(
|
||||
event_presenter_id=event_presenter_id,
|
||||
enabled=enabled,
|
||||
inc_event_abstract_list=inc_event_abstract_list,
|
||||
inc_event_badge_list=inc_event_badge,
|
||||
inc_event_device_list=inc_event_device_list,
|
||||
inc_event_file_list=inc_event_file_list,
|
||||
inc_event_person=inc_event_person,
|
||||
#inc_event_presentation_list=inc_event_presentation_list,
|
||||
#inc_event_presenter_list=inc_event_presenter_list,
|
||||
inc_event_registration_list=inc_event_registration,
|
||||
#inc_event_track=inc_event_track,
|
||||
inc_person=inc_person,
|
||||
inc_user=inc_user,
|
||||
):
|
||||
data = event_presenter_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
||||
event_presenter_li.append(data)
|
||||
return mk_resp(data=event_presenter_li)
|
||||
else:
|
||||
log.debug(event_presenter_li_result)
|
||||
return mk_resp(data=False, status_code=404)
|
||||
|
||||
|
||||
# @router.get('/{obj_id}', response_model=Resp_Body_Base)
|
||||
# async def get_event_presenter_obj(
|
||||
# obj_id: str = Query(..., min_length=1, max_length=22),
|
||||
# x_account_id: str = Header(...),
|
||||
# by_alias: Optional[bool] = True,
|
||||
# exclude_unset: Optional[bool] = True,
|
||||
# ):
|
||||
# log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
# log.debug(locals())
|
||||
|
||||
# obj_type = 'event_presenter'
|
||||
# result = get_obj_template(
|
||||
# obj_type=obj_type,
|
||||
# obj_id=obj_id,
|
||||
# by_alias=True,
|
||||
# exclude_unset=True,
|
||||
# )
|
||||
# return result
|
||||
|
||||
|
||||
# ### BEGIN ### API Event Presenter ### get_event_presenter_obj() ###
|
||||
# Working well as of 2021-06-07. Using as a template for other routes.
|
||||
@router.get('/{event_presenter_id}', response_model=Resp_Body_Base)
|
||||
async def get_event_presenter_obj(
|
||||
event_presenter_id: str = Query(..., min_length=1, max_length=22),
|
||||
enabled: str = 'enabled', # enabled, disabled, all; For now this covers any included objects or object lists
|
||||
limit: int = 500, # For now this covers any included objects or object lists
|
||||
inc_event_abstract_list: bool = False, # Part of event_presenter and under event_person obj
|
||||
inc_event_badge: bool = False, # Under event_person obj
|
||||
inc_event_device_list: bool = False, # Part of event_presenter and under event_person obj
|
||||
inc_event_file_list: bool = False, # Part of event_presenter and under event_person obj
|
||||
inc_event_person: bool = False,
|
||||
# inc_event_presentation: bool = False, # NOTE: Placehold for future?
|
||||
# inc_event_presentation_list: bool = False, # NOTE: Placehold for future?
|
||||
# inc_event_presenter_list: bool = False, # NOTE: Placehold for future?
|
||||
inc_event_registration: bool = False, # Under event_person obj
|
||||
# inc_event_session: bool = False, # NOTE: Placehold for future?
|
||||
# inc_event_session_list: bool = False, # NOTE: Placehold for future?
|
||||
inc_person: bool = False, # Under event_person obj
|
||||
inc_user: bool = False, # Under event_person obj
|
||||
x_account_id: str = Header(...),
|
||||
by_alias: Optional[bool] = True,
|
||||
exclude_unset: Optional[bool] = True,
|
||||
):
|
||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(locals())
|
||||
|
||||
if event_presenter_id := redis_lookup_id_random(record_id_random=event_presenter_id, table_name='event_presenter'): pass
|
||||
else:
|
||||
return mk_resp(data=None, status_code=404)
|
||||
|
||||
if event_presenter_obj := load_event_presenter_obj(
|
||||
event_presenter_id=event_presenter_id,
|
||||
enabled=enabled,
|
||||
limit=limit,
|
||||
inc_event_abstract_list=inc_event_abstract_list,
|
||||
inc_event_badge=inc_event_badge,
|
||||
inc_event_device_list=inc_event_device_list,
|
||||
inc_event_file_list=inc_event_file_list,
|
||||
inc_event_person=inc_event_person,
|
||||
# inc_event_presentation=inc_event_presentation,
|
||||
inc_event_registration=inc_event_registration,
|
||||
# inc_event_session=inc_event_session,
|
||||
inc_person=inc_person,
|
||||
inc_user=inc_user,
|
||||
):
|
||||
event_presenter_dict = event_presenter_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
||||
pass
|
||||
else:
|
||||
return mk_resp(data=False, status_code=400) # Bad Request
|
||||
|
||||
return mk_resp(data=event_presenter_dict)
|
||||
#return mk_resp(data=event_presenter_obj)
|
||||
# ### END ### API Event ### get_event_presenter_obj() ###
|
||||
|
||||
|
||||
@router.delete('/{obj_id}', response_model=Resp_Body_Base)
|
||||
async def delete_event_presenter_obj(
|
||||
obj_id: str = Query(..., min_length=1, max_length=22),
|
||||
x_account_id: str = Header(...),
|
||||
):
|
||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(locals())
|
||||
|
||||
obj_type = 'event_presenter'
|
||||
result = delete_obj_template(
|
||||
obj_type=obj_type,
|
||||
obj_id=obj_id,
|
||||
)
|
||||
return result
|
||||
@@ -99,7 +99,7 @@ async def get_event_session_obj_li(
|
||||
enabled: str = 'enabled', # enabled, disabled, all
|
||||
from_datetime: Optional[datetime.datetime] = None, # based on start_datetime
|
||||
to_datetime: Optional[datetime.datetime] = None, # based on start_datetime
|
||||
limit: int = None,
|
||||
limit: int = 500,
|
||||
inc_event_abstract_list: bool = False,
|
||||
inc_event_badge_list: bool = False,
|
||||
inc_event_device_list: bool = False,
|
||||
@@ -111,8 +111,8 @@ async def get_event_session_obj_li(
|
||||
inc_event_registration_list: bool = False,
|
||||
inc_event_track: bool = False,
|
||||
inc_poc_event_person: bool = False,
|
||||
inc_poc_person: bool = False,
|
||||
inc_user: bool = False,
|
||||
# inc_poc_person: bool = False,
|
||||
# inc_user: bool = False,
|
||||
x_account_id: str = Header(...),
|
||||
by_alias: bool = True,
|
||||
exclude_unset: bool = True,
|
||||
@@ -197,8 +197,8 @@ async def get_event_session_obj_li(
|
||||
inc_event_registration_list=inc_event_registration_list,
|
||||
inc_event_track=inc_event_track,
|
||||
inc_poc_event_person=inc_poc_event_person,
|
||||
inc_poc_person=inc_poc_person,
|
||||
inc_user=inc_user,
|
||||
# inc_poc_person=inc_poc_person,
|
||||
# inc_user=inc_user,
|
||||
):
|
||||
data = event_session_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
||||
event_session_li.append(data)
|
||||
|
||||
Reference in New Issue
Block a user