Work on things related to event_person, tracking, badges, sessions, etc
This commit is contained in:
@@ -18,7 +18,7 @@ from app.lib_general import log, logging
|
|||||||
from app.log import log
|
from app.log import log
|
||||||
|
|
||||||
# Import the routers here first:
|
# Import the routers here first:
|
||||||
from app.routers import api_crud, api, importing, account, address, archive, archive_content, contact, cont_edu_cert, cont_edu_cert_person, event, event_badge, event_badge_template, event_exhibit, event_file, event_person, event_person_detail, event_presentation, event_presenter, event_registration, event_session, flask_cfg, hosted_file, journal, journal_entry, log_client_viewing, lookup, membership_cfg, membership_group, membership_group_person, membership_person, membership_person_profile, membership_type, membership_type_person, order, order_cart, organization, page, person, post, post_comment, product, site, site_domain, user, user_person, websockets # , items, journals
|
from app.routers import api_crud, api, importing, account, address, archive, archive_content, contact, cont_edu_cert, cont_edu_cert_person, event, event_badge, event_badge_template, event_exhibit, event_file, event_person, event_person_detail, event_person_tracking, event_presentation, event_presenter, event_registration, event_session, flask_cfg, hosted_file, journal, journal_entry, log_client_viewing, lookup, membership_cfg, membership_group, membership_group_person, membership_person, membership_person_profile, membership_type, membership_type_person, order, order_cart, organization, page, person, post, post_comment, product, site, site_domain, user, user_person, websockets # , items, journals
|
||||||
|
|
||||||
from app.db_sql import db
|
from app.db_sql import db
|
||||||
|
|
||||||
@@ -142,6 +142,11 @@ app.include_router(
|
|||||||
prefix='/event/person/detail',
|
prefix='/event/person/detail',
|
||||||
tags=['Event Person Detail'],
|
tags=['Event Person Detail'],
|
||||||
)
|
)
|
||||||
|
app.include_router(
|
||||||
|
event_person_tracking.router,
|
||||||
|
# prefix='/event/person/tracking',
|
||||||
|
tags=['Event Person Tracking'],
|
||||||
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
event_presentation.router,
|
event_presentation.router,
|
||||||
prefix='/event/presentation',
|
prefix='/event/presentation',
|
||||||
|
|||||||
@@ -182,6 +182,7 @@ def load_event_person_obj(
|
|||||||
return event_person_obj
|
return event_person_obj
|
||||||
# ### END ### API Event Person Methods ### load_event_person_obj() ###
|
# ### END ### API Event Person Methods ### load_event_person_obj() ###
|
||||||
|
|
||||||
|
|
||||||
# ### BEGIN ### API Event Person Methods ### get_event_person_rec_list() ###
|
# ### BEGIN ### API Event Person Methods ### get_event_person_rec_list() ###
|
||||||
# for_obj_type: account, event, event_registration, event_badge, person, user
|
# for_obj_type: account, event, event_registration, event_badge, person, user
|
||||||
# Updated 2021-09-10
|
# Updated 2021-09-10
|
||||||
|
|||||||
131
app/methods/event_person_tracking_methods.py
Normal file
131
app/methods/event_person_tracking_methods.py
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
from __future__ import annotations
|
||||||
|
import datetime
|
||||||
|
|
||||||
|
from typing import Dict, List, Optional, Set, Union
|
||||||
|
from pydantic import BaseModel, EmailStr, Field, PrivateAttr, ValidationError, validator
|
||||||
|
|
||||||
|
from app.db_sql import get_account_id_w_for_type_id, redis_lookup_id_random, sql_insert, sql_select, sql_update
|
||||||
|
from app.lib_general import log, logging
|
||||||
|
|
||||||
|
from app.models.common_field_schema import default_num_bytes
|
||||||
|
from app.models.event_person_tracking_models import Event_Person_Tracking_Base
|
||||||
|
|
||||||
|
|
||||||
|
# ### BEGIN ### API Event Person Tracking Methods ### load_event_person_tracking_obj() ###
|
||||||
|
# Updated 2021-09-21
|
||||||
|
def load_event_person_tracking_obj(
|
||||||
|
event_person_tracking_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
|
||||||
|
inc_event_session: bool = False,
|
||||||
|
inc_event_person: bool = False,
|
||||||
|
) -> Event_Person_Tracking_Base|dict|bool:
|
||||||
|
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
|
log.debug(locals())
|
||||||
|
|
||||||
|
if event_person_tracking_id := redis_lookup_id_random(record_id_random=event_person_tracking_id, table_name='event_person_tracking'): pass
|
||||||
|
else: return False
|
||||||
|
|
||||||
|
if event_person_tracking_rec := sql_select(table_name='v_event_person_tracking', record_id=event_person_tracking_id): pass
|
||||||
|
else: return False
|
||||||
|
|
||||||
|
try:
|
||||||
|
event_person_tracking_obj = Event_Person_Tracking_Base(**event_person_tracking_rec)
|
||||||
|
log.debug(event_person_tracking_obj)
|
||||||
|
except ValidationError as e:
|
||||||
|
log.error(e.json())
|
||||||
|
return False
|
||||||
|
|
||||||
|
if inc_event_person:
|
||||||
|
log.info('Need to include Event Person data...')
|
||||||
|
event_person_id = event_person_tracking_rec.get('event_person_id', None)
|
||||||
|
log.debug(event_person_id)
|
||||||
|
from app.methods.event_person_methods import load_event_person_obj
|
||||||
|
if event_person_result := load_event_person_obj(
|
||||||
|
event_person_id = event_person_id,
|
||||||
|
by_alias = by_alias,
|
||||||
|
exclude_unset = exclude_unset,
|
||||||
|
model_as_dict = model_as_dict,
|
||||||
|
):
|
||||||
|
event_person_tracking_obj.event_person = event_person_result
|
||||||
|
else: event_person_tracking_obj.event_person = None
|
||||||
|
|
||||||
|
if inc_event_session:
|
||||||
|
log.info('Need to include Event Session data...')
|
||||||
|
event_session_id = event_person_tracking_rec.get('event_session_id', None)
|
||||||
|
log.debug(event_session_id)
|
||||||
|
from app.methods.event_session_methods import load_event_session_obj
|
||||||
|
if event_session_result := load_event_session_obj(
|
||||||
|
event_session_id = event_session_id,
|
||||||
|
by_alias = by_alias,
|
||||||
|
exclude_unset = exclude_unset,
|
||||||
|
model_as_dict = model_as_dict,
|
||||||
|
):
|
||||||
|
event_person_tracking_obj.event_session = event_session_result
|
||||||
|
else: event_person_tracking_obj.event_session = None
|
||||||
|
|
||||||
|
if model_as_dict:
|
||||||
|
return event_person_tracking_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset) # pylint: disable=no-member
|
||||||
|
else:
|
||||||
|
return event_person_tracking_obj
|
||||||
|
# ### END ### API Event Person Tracking Methods ### load_event_person_tracking_obj() ###
|
||||||
|
|
||||||
|
|
||||||
|
# ### BEGIN ### API Event Person Tracking Methods ### get_event_person_tracking_rec_list() ###
|
||||||
|
# for_obj_type: account, event, event_session, event_person
|
||||||
|
# Updated 2021-09-21
|
||||||
|
def get_event_person_tracking_rec_list(
|
||||||
|
for_obj_type: str, # NOTE: This is not for_type because the field name generated based
|
||||||
|
for_obj_id: str, # NOTE: This is not for_id because the field name generated based
|
||||||
|
enabled: str = 'enabled', # enabled, disabled, all
|
||||||
|
limit: int = 1000,
|
||||||
|
) -> list|bool:
|
||||||
|
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
|
log.debug(locals())
|
||||||
|
|
||||||
|
if for_obj_id := redis_lookup_id_random(record_id_random=for_obj_id, table_name=for_obj_type): pass
|
||||||
|
else: return False
|
||||||
|
|
||||||
|
data = {}
|
||||||
|
data[f'{for_obj_type}_id'] = for_obj_id
|
||||||
|
sql_obj_type_id = f'`event_person_tracking`.{for_obj_type}_id = :{for_obj_type}_id'
|
||||||
|
|
||||||
|
# if enabled in ['enabled', 'disabled', 'all']:
|
||||||
|
# if enabled == 'enabled':
|
||||||
|
# data['enable'] = True
|
||||||
|
# sql_enabled = f'AND `event_person_tracking`.enable = :enable'
|
||||||
|
# elif enabled == 'disabled':
|
||||||
|
# data['enable'] = False
|
||||||
|
# sql_enabled = f'AND `event_person_tracking`.enable = :enable'
|
||||||
|
# elif enabled == 'all':
|
||||||
|
# sql_enabled = ''
|
||||||
|
sql_enabled = ''
|
||||||
|
|
||||||
|
if limit:
|
||||||
|
data['limit'] = limit
|
||||||
|
sql_limit = f'LIMIT :limit'
|
||||||
|
else:
|
||||||
|
sql_limit = ''
|
||||||
|
|
||||||
|
sql = f"""
|
||||||
|
SELECT `event_person_tracking`.id AS 'event_person_tracking_id', `event_person_tracking`.id_random AS 'event_person_tracking_id_random'
|
||||||
|
FROM `event_person_tracking` AS `event_person_tracking`
|
||||||
|
WHERE
|
||||||
|
{sql_obj_type_id}
|
||||||
|
{sql_enabled}
|
||||||
|
ORDER BY `event_person_tracking`.created_on DESC, `event_person_tracking`.updated_on DESC
|
||||||
|
{sql_limit};
|
||||||
|
"""
|
||||||
|
|
||||||
|
if event_person_rec_li_result := sql_select(data=data, sql=sql, as_list=True):
|
||||||
|
event_person_rec_li = event_person_rec_li_result
|
||||||
|
else:
|
||||||
|
event_person_rec_li = []
|
||||||
|
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
|
log.debug(event_person_rec_li_result)
|
||||||
|
|
||||||
|
return event_person_rec_li
|
||||||
|
# ### END ### API Event Person Tracking Methods ### get_event_person_tracking_rec_list() ###
|
||||||
@@ -28,6 +28,11 @@ class Event_Base(BaseModel):
|
|||||||
id: Optional[int] = Field(
|
id: Optional[int] = Field(
|
||||||
alias = 'event_id'
|
alias = 'event_id'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
code: Optional[str] = Field(
|
||||||
|
alias = 'event_code'
|
||||||
|
)
|
||||||
|
|
||||||
account_id_random: Optional[str]
|
account_id_random: Optional[str]
|
||||||
account_id: Optional[int]
|
account_id: Optional[int]
|
||||||
|
|
||||||
|
|||||||
@@ -63,6 +63,36 @@ class Event_Person_Base(BaseModel):
|
|||||||
created_on: Optional[datetime.datetime] = None
|
created_on: Optional[datetime.datetime] = None
|
||||||
updated_on: Optional[datetime.datetime] = None
|
updated_on: Optional[datetime.datetime] = None
|
||||||
|
|
||||||
|
# Including convenience data
|
||||||
|
# This is only for convenience. Probably going to keep unless it causes a problem.
|
||||||
|
event_badge_informal_name: Optional[str]
|
||||||
|
event_badge_given_name: Optional[str]
|
||||||
|
event_badge_family_name: Optional[str]
|
||||||
|
event_badge_display_name: Optional[str]
|
||||||
|
event_badge_full_name: Optional[str]
|
||||||
|
event_badge_affiliations: Optional[str]
|
||||||
|
event_badge_email: Optional[str]
|
||||||
|
|
||||||
|
event_person_informal_name: Optional[str]
|
||||||
|
event_person_given_name: Optional[str]
|
||||||
|
event_person_family_name: Optional[str]
|
||||||
|
event_person_display_name: Optional[str]
|
||||||
|
event_person_full_name: Optional[str]
|
||||||
|
event_person_affiliations: Optional[str]
|
||||||
|
event_person_email: Optional[str]
|
||||||
|
|
||||||
|
person_informal_name: Optional[str]
|
||||||
|
person_given_name: Optional[str]
|
||||||
|
person_family_name: Optional[str]
|
||||||
|
person_display_name: Optional[str]
|
||||||
|
person_full_name: Optional[str]
|
||||||
|
person_affiliations: Optional[str]
|
||||||
|
person_email: Optional[str]
|
||||||
|
|
||||||
|
user_email: Optional[str]
|
||||||
|
user_name: Optional[str]
|
||||||
|
user_username: Optional[str]
|
||||||
|
|
||||||
# Including other related objects
|
# Including other related objects
|
||||||
# event: Optional[Event_Base] # Causes an import loop
|
# event: Optional[Event_Base] # Causes an import loop
|
||||||
event_abstract_list: Optional[list] # Use event_person_detail table. An event_person record can be linked to one or more abstracts
|
event_abstract_list: Optional[list] # Use event_person_detail table. An event_person record can be linked to one or more abstracts
|
||||||
|
|||||||
@@ -58,6 +58,32 @@ class Event_Person_Tracking_Base(BaseModel):
|
|||||||
created_on: Optional[datetime.datetime] = None
|
created_on: Optional[datetime.datetime] = None
|
||||||
updated_on: Optional[datetime.datetime] = None
|
updated_on: Optional[datetime.datetime] = None
|
||||||
|
|
||||||
|
# Including convenience data
|
||||||
|
# This is only for convenience. Probably going to keep unless it causes a problem.
|
||||||
|
# full_name: Optional[str] = Field(
|
||||||
|
# alias = 'event_person_full_name'
|
||||||
|
# )
|
||||||
|
# display_name: Optional[str] = Field(
|
||||||
|
# alias = 'event_person_display_name'
|
||||||
|
# )
|
||||||
|
|
||||||
|
event_person_informal_name: Optional[str]
|
||||||
|
event_person_given_name: Optional[str]
|
||||||
|
event_person_family_name: Optional[str]
|
||||||
|
event_person_display_name: Optional[str]
|
||||||
|
event_person_full_name: Optional[str]
|
||||||
|
event_person_affiliations: Optional[str]
|
||||||
|
event_person_email: Optional[str]
|
||||||
|
event_session_name: Optional[str]
|
||||||
|
|
||||||
|
location_name: Optional[str] = Field(
|
||||||
|
alias = 'event_location_name'
|
||||||
|
)
|
||||||
|
track_name: Optional[str] = Field(
|
||||||
|
alias = 'event_track_name'
|
||||||
|
)
|
||||||
|
# Maybe add timezone in the future?
|
||||||
|
|
||||||
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
|
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
|
||||||
|
|
||||||
#@validator('event_person_tracking_id_random', always=True)
|
#@validator('event_person_tracking_id_random', always=True)
|
||||||
|
|||||||
@@ -29,6 +29,10 @@ class Event_Presentation_Base(BaseModel):
|
|||||||
alias = 'event_presentation_id'
|
alias = 'event_presentation_id'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
code: Optional[str] = Field(
|
||||||
|
alias = 'event_presentation_code'
|
||||||
|
)
|
||||||
|
|
||||||
event_id_random: Optional[str]
|
event_id_random: Optional[str]
|
||||||
event_id: Optional[int]
|
event_id: Optional[int]
|
||||||
|
|
||||||
@@ -50,8 +54,6 @@ class Event_Presentation_Base(BaseModel):
|
|||||||
for_type: Optional[str]
|
for_type: Optional[str]
|
||||||
for_id: Optional[int]
|
for_id: Optional[int]
|
||||||
|
|
||||||
code: Optional[str]
|
|
||||||
|
|
||||||
name: Optional[str]
|
name: Optional[str]
|
||||||
description: Optional[str]
|
description: Optional[str]
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,11 @@ class Event_Presenter_Base(BaseModel):
|
|||||||
id: Optional[int] = Field(
|
id: Optional[int] = Field(
|
||||||
alias = 'event_presenter_id'
|
alias = 'event_presenter_id'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
code: Optional[str] = Field(
|
||||||
|
alias = 'event_presenter_code'
|
||||||
|
)
|
||||||
|
|
||||||
account_id_random: Optional[str]
|
account_id_random: Optional[str]
|
||||||
account_id: Optional[int]
|
account_id: Optional[int]
|
||||||
|
|
||||||
@@ -59,8 +64,6 @@ class Event_Presenter_Base(BaseModel):
|
|||||||
for_type: Optional[str]
|
for_type: Optional[str]
|
||||||
for_id: Optional[int]
|
for_id: Optional[int]
|
||||||
|
|
||||||
code: Optional[str]
|
|
||||||
|
|
||||||
pronouns: Optional[str] # Preferred pronouns
|
pronouns: Optional[str] # Preferred pronouns
|
||||||
informal_name: Optional[str] # Informal or nick name they commonly go by
|
informal_name: Optional[str] # Informal or nick name they commonly go by
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,10 @@ class Event_Session_Base(BaseModel):
|
|||||||
alias = 'event_session_id'
|
alias = 'event_session_id'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
code: Optional[str] = Field(
|
||||||
|
alias = 'event_session_code'
|
||||||
|
)
|
||||||
|
|
||||||
event_id_random: Optional[str]
|
event_id_random: Optional[str]
|
||||||
event_id: Optional[int]
|
event_id: Optional[int]
|
||||||
|
|
||||||
@@ -95,6 +99,16 @@ class Event_Session_Base(BaseModel):
|
|||||||
created_on: Optional[datetime.datetime] = None
|
created_on: Optional[datetime.datetime] = None
|
||||||
updated_on: Optional[datetime.datetime] = None
|
updated_on: Optional[datetime.datetime] = None
|
||||||
|
|
||||||
|
# Including convenience data
|
||||||
|
# This is only for convenience. Probably going to keep unless it causes a problem.
|
||||||
|
location_name: Optional[str] = Field(
|
||||||
|
alias = 'event_location_name'
|
||||||
|
)
|
||||||
|
track_name: Optional[str] = Field(
|
||||||
|
alias = 'event_track_name'
|
||||||
|
)
|
||||||
|
# Maybe add xxx in the future?
|
||||||
|
|
||||||
# Including other related objects
|
# Including other related objects
|
||||||
# event: Optional[Event_Base]
|
# event: Optional[Event_Base]
|
||||||
event_abstract_list: Optional[list] # Optional[Event_Abstract_Base]
|
event_abstract_list: Optional[list] # Optional[Event_Abstract_Base]
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ async def get_event_badge_obj_li(
|
|||||||
resp_data = base_name(**record).dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
resp_data = base_name(**record).dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
||||||
resp_data_li.append(resp_data)
|
resp_data_li.append(resp_data)
|
||||||
|
|
||||||
return mk_resp(data=resp_data_li)
|
return mk_resp(data=resp_data_li, response=response)
|
||||||
else:
|
else:
|
||||||
log.debug(sql_result)
|
log.debug(sql_result)
|
||||||
return mk_resp(data=False, status_code=404, response=response)
|
return mk_resp(data=False, status_code=404, response=response)
|
||||||
@@ -212,7 +212,7 @@ async def search_event_badge_obj_li(
|
|||||||
resp_data = Event_Badge_Base(**record).dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
resp_data = Event_Badge_Base(**record).dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
||||||
resp_data_li.append(resp_data)
|
resp_data_li.append(resp_data)
|
||||||
|
|
||||||
return mk_resp(data=resp_data_li)
|
return mk_resp(data=resp_data_li, response=response)
|
||||||
else:
|
else:
|
||||||
log.debug(sql_result)
|
log.debug(sql_result)
|
||||||
return mk_resp(data=False, status_code=404, response=response)
|
return mk_resp(data=False, status_code=404, response=response)
|
||||||
@@ -236,7 +236,7 @@ async def get_event_badge_obj(
|
|||||||
log.debug(locals())
|
log.debug(locals())
|
||||||
|
|
||||||
if event_badge_id := redis_lookup_id_random(record_id_random=event_badge_id, table_name='event_badge'): pass
|
if event_badge_id := redis_lookup_id_random(record_id_random=event_badge_id, table_name='event_badge'): pass
|
||||||
else: return mk_resp(data=None, status_code=404)
|
else: return mk_resp(data=None, status_code=404, response=response)
|
||||||
|
|
||||||
event_badge_obj = load_event_badge_obj(
|
event_badge_obj = load_event_badge_obj(
|
||||||
event_badge_id = event_badge_id,
|
event_badge_id = event_badge_id,
|
||||||
@@ -248,7 +248,7 @@ async def get_event_badge_obj(
|
|||||||
inc_event_badge_template = inc_event_badge_template,
|
inc_event_badge_template = inc_event_badge_template,
|
||||||
)
|
)
|
||||||
event_badge_dict = event_badge_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
event_badge_dict = event_badge_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
||||||
return mk_resp(data=event_badge_dict)
|
return mk_resp(data=event_badge_dict, response=response)
|
||||||
# ### END ### API Event Badge ### get_event_badge_obj() ###
|
# ### END ### API Event Badge ### get_event_badge_obj() ###
|
||||||
|
|
||||||
|
|
||||||
@@ -269,7 +269,7 @@ async def get_account_obj_event_badge_list(
|
|||||||
log.debug(locals())
|
log.debug(locals())
|
||||||
|
|
||||||
if account_id := redis_lookup_id_random(record_id_random=account_id, table_name='account'): pass
|
if account_id := redis_lookup_id_random(record_id_random=account_id, table_name='account'): pass
|
||||||
else: return mk_resp(data=None, status_code=404)
|
else: return mk_resp(data=None, status_code=404, response=response)
|
||||||
|
|
||||||
response_data = None
|
response_data = None
|
||||||
# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
@@ -298,7 +298,7 @@ async def get_account_obj_event_badge_list(
|
|||||||
else:
|
else:
|
||||||
return mk_resp(data=False, status_code=400, response=response) # Bad Request
|
return mk_resp(data=False, status_code=400, response=response) # Bad Request
|
||||||
|
|
||||||
return mk_resp(data=response_data)
|
return mk_resp(data=response_data, response=response)
|
||||||
# ### END ### API Event Badge ### get_account_obj_event_badge_list() ###
|
# ### END ### API Event Badge ### get_account_obj_event_badge_list() ###
|
||||||
|
|
||||||
|
|
||||||
@@ -318,7 +318,7 @@ async def get_event_obj_event_badge_list(
|
|||||||
log.debug(locals())
|
log.debug(locals())
|
||||||
|
|
||||||
if event_badge_id := redis_lookup_id_random(record_id_random=event_badge_id, table_name='event_badge'): pass
|
if event_badge_id := redis_lookup_id_random(record_id_random=event_badge_id, table_name='event_badge'): pass
|
||||||
else: return mk_resp(data=None, status_code=404)
|
else: return mk_resp(data=None, status_code=404, response=response)
|
||||||
|
|
||||||
response_data = None
|
response_data = None
|
||||||
# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
@@ -346,7 +346,7 @@ async def get_event_obj_event_badge_list(
|
|||||||
else:
|
else:
|
||||||
return mk_resp(data=False, status_code=400, response=response) # Bad Request
|
return mk_resp(data=False, status_code=400, response=response) # Bad Request
|
||||||
|
|
||||||
return mk_resp(data=response_data)
|
return mk_resp(data=response_data, response=response)
|
||||||
# ### END ### API Event Badge ### get_event_obj_event_badge_list() ###
|
# ### END ### API Event Badge ### get_event_obj_event_badge_list() ###
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -407,8 +407,7 @@ async def get_event_person_obj(
|
|||||||
log.debug(locals())
|
log.debug(locals())
|
||||||
|
|
||||||
if event_person_id := redis_lookup_id_random(record_id_random=event_person_id, table_name='event_person'): pass
|
if event_person_id := redis_lookup_id_random(record_id_random=event_person_id, table_name='event_person'): pass
|
||||||
else:
|
else: return mk_resp(data=None, status_code=404, response=response)
|
||||||
return mk_resp(data=None, status_code=404)
|
|
||||||
|
|
||||||
if event_person_obj := load_event_person_obj(
|
if event_person_obj := load_event_person_obj(
|
||||||
event_person_id = event_person_id,
|
event_person_id = event_person_id,
|
||||||
@@ -436,10 +435,172 @@ async def get_event_person_obj(
|
|||||||
else:
|
else:
|
||||||
return mk_resp(data=False, status_code=400, response=response) # Bad Request
|
return mk_resp(data=False, status_code=400, response=response) # Bad Request
|
||||||
|
|
||||||
return mk_resp(data=event_person_obj)
|
return mk_resp(data=event_person_obj, response=response)
|
||||||
# ### END ### API Event Person ### get_event_person_obj() ###
|
# ### END ### API Event Person ### get_event_person_obj() ###
|
||||||
|
|
||||||
|
|
||||||
|
# ### BEGIN ### API Event Person ### search_event_person_obj_li() ###
|
||||||
|
# Updated 2021-09-21
|
||||||
|
@router.get('/event/{event_id}/person/search', response_model=Resp_Body_Base)
|
||||||
|
async def search_event_person_obj_li(
|
||||||
|
# account_id: str = Query(None, min_length=11, max_length=22),
|
||||||
|
event_id: str = Query(None, min_length=11, max_length=22),
|
||||||
|
event_person_id: str = Query('', max_length=50),
|
||||||
|
external_id: str = Query('', max_length=50),
|
||||||
|
given_name: str = Query('', max_length=25),
|
||||||
|
family_name: str = Query('', max_length=25),
|
||||||
|
email: str = Query('', max_length=50),
|
||||||
|
limit: int = 50,
|
||||||
|
enabled: str = 'enabled',
|
||||||
|
x_account_id: str = Header(...),
|
||||||
|
by_alias: bool = True,
|
||||||
|
exclude_unset: bool = True,
|
||||||
|
response: Response = Response,
|
||||||
|
):
|
||||||
|
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
|
log.debug(locals())
|
||||||
|
|
||||||
|
if account_id := redis_lookup_id_random(record_id_random=x_account_id, table_name='account'): pass
|
||||||
|
else: return mk_resp(data=None, status_code=404, response=response)
|
||||||
|
|
||||||
|
if event_id:
|
||||||
|
log.info(f'Looking up Event ID based on Event ID Random: {event_id}')
|
||||||
|
if event_id := redis_lookup_id_random(record_id_random=event_id, table_name='event'): pass
|
||||||
|
else: return mk_resp(data=None, status_code=404, response=response)
|
||||||
|
|
||||||
|
if event_person_id:
|
||||||
|
log.info(f'Looking up Event Person ID based on Event ID Random: {event_person_id}')
|
||||||
|
if event_person_id := redis_lookup_id_random(record_id_random=event_person_id, table_name='event_person'): pass
|
||||||
|
else: return mk_resp(data=None, status_code=404, response=response)
|
||||||
|
|
||||||
|
data = {}
|
||||||
|
data['account_id'] = account_id
|
||||||
|
data['event_id'] = event_id
|
||||||
|
data['event_person_id'] = event_person_id
|
||||||
|
data['external_id'] = '%'+external_id+'%'
|
||||||
|
data['given_name'] = '%'+given_name+'%'
|
||||||
|
data['family_name'] = '%'+family_name+'%'
|
||||||
|
data['email'] = '%'+email+'%' # Adding the % symbol here because it turns certain combinations into special characters
|
||||||
|
# data['from_datetime'] = from_datetime
|
||||||
|
# data['to_datetime'] = to_datetime
|
||||||
|
log.debug(data)
|
||||||
|
|
||||||
|
if enabled in ['enabled', 'disabled', 'all']:
|
||||||
|
if enabled == 'enabled':
|
||||||
|
data['enable'] = True
|
||||||
|
sql_enabled = f'AND `event_person`.enable = :enable'
|
||||||
|
elif enabled == 'disabled':
|
||||||
|
data['enable'] = False
|
||||||
|
sql_enabled = f'AND `event_person`.enable = :enable'
|
||||||
|
elif enabled == 'all':
|
||||||
|
sql_enabled = ''
|
||||||
|
|
||||||
|
if limit:
|
||||||
|
data['limit'] = limit
|
||||||
|
sql_limit = f'LIMIT :limit'
|
||||||
|
else:
|
||||||
|
sql_limit = ''
|
||||||
|
|
||||||
|
if event_person_id:
|
||||||
|
log.info('Looking up Event Person based on event_person_id')
|
||||||
|
sql = f"""
|
||||||
|
SELECT *
|
||||||
|
FROM `v_event_person` AS event_person
|
||||||
|
WHERE event_person.account_id = :account_id
|
||||||
|
AND event_person.event_id = :event_id
|
||||||
|
AND event_person.event_person_id LIKE :event_person_id
|
||||||
|
{sql_enabled}
|
||||||
|
ORDER BY event_person.event_person_family_name ASC, event_person.event_person_given_name ASC, event_person.created_on DESC, event_person.updated_on DESC
|
||||||
|
{sql_limit};
|
||||||
|
"""
|
||||||
|
elif external_id:
|
||||||
|
log.info('Looking up Event Person based on external_id')
|
||||||
|
sql = f"""
|
||||||
|
SELECT *
|
||||||
|
FROM `v_event_person` AS event_person
|
||||||
|
WHERE event_person.account_id = :account_id
|
||||||
|
AND event_person.event_id = :event_id
|
||||||
|
AND event_person.external_id LIKE :external_id
|
||||||
|
{sql_enabled}
|
||||||
|
ORDER BY event_person.event_person_family_name ASC, event_person.event_person_given_name ASC, event_person.created_on DESC, event_person.updated_on DESC
|
||||||
|
{sql_limit};
|
||||||
|
"""
|
||||||
|
elif given_name and family_name and email:
|
||||||
|
log.info('Looking up Event Person based on given_name, family_name, and email')
|
||||||
|
sql = f"""
|
||||||
|
SELECT *
|
||||||
|
FROM `v_event_person` AS event_person
|
||||||
|
WHERE event_person.account_id = :account_id
|
||||||
|
AND event_person.event_id = :event_id
|
||||||
|
AND (event_person.event_person_given_name LIKE :given_name OR event_person.person_given_name LIKE :given_name)
|
||||||
|
AND (event_person.event_person_family_name LIKE :family_name OR event_person.person_family_name LIKE :family_name)
|
||||||
|
AND (event_person.event_person_email LIKE :email OR event_person.user_email LIKE :email)
|
||||||
|
{sql_enabled}
|
||||||
|
ORDER BY event_person.event_person_family_name ASC, event_person.event_person_given_name ASC, event_person.created_on DESC, event_person.updated_on DESC
|
||||||
|
{sql_limit};
|
||||||
|
"""
|
||||||
|
elif given_name and family_name:
|
||||||
|
log.info('Looking up Event Person based on given_name and family_name')
|
||||||
|
sql = f"""
|
||||||
|
SELECT *
|
||||||
|
FROM `v_event_person` AS event_person
|
||||||
|
WHERE event_person.account_id = :account_id
|
||||||
|
AND event_person.event_id = :event_id
|
||||||
|
AND (event_person.event_person_given_name LIKE :given_name OR event_person.person_given_name LIKE :given_name)
|
||||||
|
AND (event_person.event_person_family_name LIKE :family_name OR event_person.person_family_name LIKE :family_name)
|
||||||
|
AND (event_person.event_person_email IS NULL OR event_person.event_person_email LIKE :email OR event_person.user_email LIKE :email)
|
||||||
|
{sql_enabled}
|
||||||
|
ORDER BY event_person.event_person_family_name ASC, event_person.event_person_given_name ASC, event_person.created_on DESC, event_person.updated_on DESC
|
||||||
|
{sql_limit};
|
||||||
|
"""
|
||||||
|
elif given_name or family_name:
|
||||||
|
log.info('Looking up Event Person based on given_name or family_name')
|
||||||
|
sql = f"""
|
||||||
|
SELECT *
|
||||||
|
FROM `v_event_person` AS event_person
|
||||||
|
WHERE event_person.account_id = :account_id
|
||||||
|
AND event_person.event_id = :event_id
|
||||||
|
|
||||||
|
AND (event_person.event_person_given_name IS NULL OR event_person.event_person_given_name LIKE :given_name OR event_person.person_given_name LIKE :given_name)
|
||||||
|
|
||||||
|
AND (event_person.event_person_family_name IS NULL OR event_person.event_person_family_name LIKE :family_name OR event_person.person_family_name LIKE :family_name)
|
||||||
|
|
||||||
|
AND (event_person.event_person_email IS NULL OR event_person.event_person_email LIKE :email OR event_person.user_email LIKE :email)
|
||||||
|
|
||||||
|
{sql_enabled}
|
||||||
|
ORDER BY event_person.event_person_family_name ASC, event_person.event_person_given_name ASC, event_person.created_on DESC, event_person.updated_on DESC
|
||||||
|
{sql_limit};
|
||||||
|
"""
|
||||||
|
elif email:
|
||||||
|
log.info('Looking up Event Person based on email')
|
||||||
|
sql = f"""
|
||||||
|
SELECT *
|
||||||
|
FROM `v_event_person` AS event_person
|
||||||
|
WHERE event_person.account_id = :account_id
|
||||||
|
AND event_person.event_id = :event_id
|
||||||
|
AND (event_person.event_person_given_name IS NULL OR event_person.event_person_given_name LIKE :given_name OR event_person.person_given_name LIKE :given_name)
|
||||||
|
AND (event_person.event_person_family_name IS NULL OR event_person.event_person_family_name LIKE :family_name OR event_person.person_family_name LIKE :family_name)
|
||||||
|
AND (event_person.event_person_email LIKE :email OR event_person.user_email LIKE :email)
|
||||||
|
{sql_enabled}
|
||||||
|
ORDER BY event_person.event_person_family_name ASC, event_person.event_person_given_name ASC, event_person.created_on DESC, event_person.updated_on DESC
|
||||||
|
{sql_limit};
|
||||||
|
"""
|
||||||
|
|
||||||
|
log.debug(sql)
|
||||||
|
if sql_result := sql_select(data=data, sql=sql, as_list=True, rm_id_random=True):
|
||||||
|
resp_data_li = []
|
||||||
|
for record in sql_result:
|
||||||
|
resp_data = Event_Person_Base(**record).dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
||||||
|
resp_data_li.append(resp_data)
|
||||||
|
|
||||||
|
return mk_resp(data=resp_data_li, response=response)
|
||||||
|
else:
|
||||||
|
log.debug(sql_result)
|
||||||
|
return mk_resp(data=False, status_code=404, response=response)
|
||||||
|
# ### END ### API Event Person ### search_event_person_obj_li() ###
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# ### BEGIN ### API Event Person Methods ### get_event_registration_event_person_obj_li() ###
|
# ### BEGIN ### API Event Person Methods ### get_event_registration_event_person_obj_li() ###
|
||||||
# Similar to event_registration.py: /event/registration/<id> inc_event_person_list
|
# Similar to event_registration.py: /event/registration/<id> inc_event_person_list
|
||||||
# Updated 2021-08-17
|
# Updated 2021-08-17
|
||||||
|
|||||||
185
app/routers/event_person_tracking.py
Normal file
185
app/routers/event_person_tracking.py
Normal file
@@ -0,0 +1,185 @@
|
|||||||
|
import datetime
|
||||||
|
#from datetime import datetime, time, timedelta
|
||||||
|
from fastapi import APIRouter, Body, Depends, Header, HTTPException, Query, Response, status
|
||||||
|
from pydantic import BaseModel, EmailStr, Field
|
||||||
|
from typing import Dict, List, Optional, Set, Union
|
||||||
|
|
||||||
|
from app.lib_general import log, logging
|
||||||
|
#from ..log import *
|
||||||
|
from app.config import settings
|
||||||
|
from app.db_sql import *
|
||||||
|
|
||||||
|
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_person_tracking_methods import get_event_person_tracking_rec_list, load_event_person_tracking_obj
|
||||||
|
|
||||||
|
from app.models.event_person_tracking_models import Event_Person_Tracking_Base
|
||||||
|
from app.models.response_models import *
|
||||||
|
|
||||||
|
|
||||||
|
router = APIRouter()
|
||||||
|
|
||||||
|
|
||||||
|
@router.post('/event/person/tracking', response_model=Resp_Body_Base)
|
||||||
|
async def post_event_person_tracking_obj(
|
||||||
|
obj: Event_Person_Tracking_Base,
|
||||||
|
x_account_id: str = Header(...),
|
||||||
|
return_obj: Optional[bool] = True,
|
||||||
|
by_alias: Optional[bool] = True,
|
||||||
|
exclude_unset: Optional[bool] = True,
|
||||||
|
response: Response = Response,
|
||||||
|
):
|
||||||
|
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
|
log.debug(locals())
|
||||||
|
|
||||||
|
obj_type = 'event_person_tracking'
|
||||||
|
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('/event/person/tracking/{obj_id}', response_model=Resp_Body_Base)
|
||||||
|
async def patch_event_person_tracking_obj(
|
||||||
|
obj: Event_Person_Tracking_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,
|
||||||
|
response: Response = Response,
|
||||||
|
):
|
||||||
|
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
|
log.debug(locals())
|
||||||
|
|
||||||
|
obj_type = 'event_person_tracking'
|
||||||
|
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('/event/person/tracking/list', response_model=Resp_Body_Base)
|
||||||
|
async def get_event_person_tracking_obj_li(
|
||||||
|
for_obj_type: Optional[str] = Query(None, min_length=2, max_length=50),
|
||||||
|
for_obj_id: Optional[str] = Query(None, min_length=1, max_length=22),
|
||||||
|
x_account_id: str = Header(...),
|
||||||
|
by_alias: Optional[bool] = True,
|
||||||
|
exclude_unset: Optional[bool] = True,
|
||||||
|
response: Response = Response,
|
||||||
|
):
|
||||||
|
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
|
log.debug(locals())
|
||||||
|
|
||||||
|
obj_type = 'event_person_tracking'
|
||||||
|
result = get_obj_li_template(
|
||||||
|
obj_type=obj_type,
|
||||||
|
for_obj_type=for_obj_type,
|
||||||
|
for_obj_id=for_obj_id,
|
||||||
|
by_alias=True,
|
||||||
|
exclude_unset=True,
|
||||||
|
)
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
@router.get('/event/person/tracking/{obj_id}', response_model=Resp_Body_Base)
|
||||||
|
async def get_event_person_tracking_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,
|
||||||
|
response: Response = Response,
|
||||||
|
):
|
||||||
|
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
|
log.debug(locals())
|
||||||
|
|
||||||
|
obj_type = 'event_person_tracking'
|
||||||
|
result = get_obj_template(
|
||||||
|
obj_type=obj_type,
|
||||||
|
obj_id=obj_id,
|
||||||
|
by_alias=True,
|
||||||
|
exclude_unset=True,
|
||||||
|
)
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
# ### BEGIN ### API Event Person Tracking ### get_event_session_obj_event_person_tracking_list() ###
|
||||||
|
# Updated 2021-09-21
|
||||||
|
@router.get('/event/session/{event_session_id}/event/person/tracking/list', response_model=Resp_Body_Base)
|
||||||
|
async def get_event_session_obj_event_person_tracking_list(
|
||||||
|
event_session_id: str = Query(..., min_length=11, max_length=22),
|
||||||
|
limit: int = 500, # For now this covers any included objects or object lists
|
||||||
|
enabled: str = 'enabled', # For now this covers any included objects or object lists
|
||||||
|
inc_event_person: bool = False,
|
||||||
|
inc_event_session: bool = False,
|
||||||
|
x_account_id: str = Header(...),
|
||||||
|
by_alias: Optional[bool] = True,
|
||||||
|
exclude_unset: Optional[bool] = True,
|
||||||
|
response: Response = Response,
|
||||||
|
):
|
||||||
|
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
|
log.debug(locals())
|
||||||
|
|
||||||
|
if event_session_id := redis_lookup_id_random(record_id_random=event_session_id, table_name='event_session'): pass
|
||||||
|
else: return mk_resp(data=None, status_code=404, response=response)
|
||||||
|
|
||||||
|
# Updated 2021-09-21
|
||||||
|
if event_person_tracking_rec_list_result := get_event_person_tracking_rec_list(
|
||||||
|
for_obj_type = 'event_session',
|
||||||
|
for_obj_id = event_session_id,
|
||||||
|
enabled = enabled,
|
||||||
|
limit = limit,
|
||||||
|
):
|
||||||
|
event_person_tracking_result_list = []
|
||||||
|
for event_person_tracking_rec in event_person_tracking_rec_list_result:
|
||||||
|
if load_event_person_tracking_result := load_event_person_tracking_obj(
|
||||||
|
event_person_tracking_id = event_person_tracking_rec.get('event_person_tracking_id', None),
|
||||||
|
enabled = enabled,
|
||||||
|
limit = limit,
|
||||||
|
inc_event_person = inc_event_person,
|
||||||
|
inc_event_session = inc_event_session,
|
||||||
|
by_alias = by_alias,
|
||||||
|
exclude_unset = exclude_unset,
|
||||||
|
# model_as_dict = model_as_dict,
|
||||||
|
):
|
||||||
|
event_person_tracking_result_list.append(load_event_person_tracking_result)
|
||||||
|
else:
|
||||||
|
event_person_tracking_result_list.append(None)
|
||||||
|
response_data = event_person_tracking_result_list
|
||||||
|
elif isinstance(event_person_tracking_rec_list_result, list):
|
||||||
|
return mk_resp(data=False, status_code=404, response=response) # Not Found
|
||||||
|
else:
|
||||||
|
return mk_resp(data=False, status_code=400, response=response) # Bad Request
|
||||||
|
|
||||||
|
return mk_resp(data=response_data, response=response)
|
||||||
|
# ### END ### API Event Person Tracking ### get_event_session_obj_event_person_tracking_list() ###
|
||||||
|
|
||||||
|
|
||||||
|
@router.delete('/event/person/tracking/{obj_id}', response_model=Resp_Body_Base)
|
||||||
|
async def delete_event_person_tracking_obj(
|
||||||
|
obj_id: str = Query(..., min_length=1, max_length=22),
|
||||||
|
x_account_id: str = Header(...),
|
||||||
|
response: Response = Response,
|
||||||
|
):
|
||||||
|
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
|
log.debug(locals())
|
||||||
|
|
||||||
|
obj_type = 'event_person_tracking'
|
||||||
|
result = delete_obj_template(
|
||||||
|
obj_type=obj_type,
|
||||||
|
obj_id=obj_id,
|
||||||
|
)
|
||||||
|
return result
|
||||||
@@ -96,7 +96,7 @@ async def patch_event_session_obj_exist_v4(
|
|||||||
log.debug(locals())
|
log.debug(locals())
|
||||||
|
|
||||||
if event_session_id := redis_lookup_id_random(record_id_random=event_session_id, table_name='event_session'): pass
|
if event_session_id := redis_lookup_id_random(record_id_random=event_session_id, table_name='event_session'): pass
|
||||||
else: return mk_resp(data=None, status_code=404)
|
else: return mk_resp(data=None, status_code=404, response=response)
|
||||||
|
|
||||||
if update_event_session_obj_result := create_update_event_session_obj_v4(
|
if update_event_session_obj_result := create_update_event_session_obj_v4(
|
||||||
event_session_dict_obj = event_session_obj,
|
event_session_dict_obj = event_session_obj,
|
||||||
@@ -218,7 +218,7 @@ async def patch_event_session_obj_exist_v3(
|
|||||||
log.debug(locals())
|
log.debug(locals())
|
||||||
|
|
||||||
if event_session_id := redis_lookup_id_random(record_id_random=event_session_id, table_name='event_session'): pass
|
if event_session_id := redis_lookup_id_random(record_id_random=event_session_id, table_name='event_session'): pass
|
||||||
else: return mk_resp(data=None, status_code=404)
|
else: return mk_resp(data=None, status_code=404, response=response)
|
||||||
|
|
||||||
if update_event_session_obj_result := update_event_session_obj_v3(
|
if update_event_session_obj_result := update_event_session_obj_v3(
|
||||||
event_session_id = event_session_id,
|
event_session_id = event_session_id,
|
||||||
@@ -301,7 +301,7 @@ async def patch_event_session_json(
|
|||||||
|
|
||||||
if event_session_id := redis_lookup_id_random(record_id_random=event_session_id, table_name='event_session'): pass
|
if event_session_id := redis_lookup_id_random(record_id_random=event_session_id, table_name='event_session'): pass
|
||||||
else:
|
else:
|
||||||
return mk_resp(data=None, status_code=404)
|
return mk_resp(data=None, status_code=404, response=response)
|
||||||
|
|
||||||
if event_session_obj_up_result := update_event_session_obj(
|
if event_session_obj_up_result := update_event_session_obj(
|
||||||
event_session_id = event_session_id,
|
event_session_id = event_session_id,
|
||||||
@@ -313,9 +313,9 @@ async def patch_event_session_json(
|
|||||||
if return_obj:
|
if return_obj:
|
||||||
event_session_obj = load_event_session_obj(event_session_id=event_session_id)
|
event_session_obj = load_event_session_obj(event_session_id=event_session_id)
|
||||||
event_session_dict = event_session_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
event_session_dict = event_session_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
||||||
return mk_resp(data=event_session_dict)
|
return mk_resp(data=event_session_dict, response=response)
|
||||||
else:
|
else:
|
||||||
return mk_resp(data=event_session_obj_up_result)
|
return mk_resp(data=event_session_obj_up_result, response=response)
|
||||||
else:
|
else:
|
||||||
return mk_resp(data=False, status_code=400, response=response) # Bad Request
|
return mk_resp(data=False, status_code=400, response=response) # Bad Request
|
||||||
# ### END ### API Event Session ### patch_event_session_json() ###
|
# ### END ### API Event Session ### patch_event_session_json() ###
|
||||||
@@ -455,7 +455,7 @@ async def get_event_session_obj_li(
|
|||||||
):
|
):
|
||||||
data = event_session_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
data = event_session_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
||||||
event_session_li.append(data)
|
event_session_li.append(data)
|
||||||
return mk_resp(data=event_session_li)
|
return mk_resp(data=event_session_li, response=response)
|
||||||
else:
|
else:
|
||||||
log.debug(event_session_li_result)
|
log.debug(event_session_li_result)
|
||||||
return mk_resp(data=False, status_code=404, response=response)
|
return mk_resp(data=False, status_code=404, response=response)
|
||||||
@@ -496,7 +496,7 @@ async def get_event_session_obj(
|
|||||||
|
|
||||||
if event_session_id := redis_lookup_id_random(record_id_random=event_session_id, table_name='event_session'): pass
|
if event_session_id := redis_lookup_id_random(record_id_random=event_session_id, table_name='event_session'): pass
|
||||||
else:
|
else:
|
||||||
return mk_resp(data=None, status_code=404)
|
return mk_resp(data=None, status_code=404, response=response)
|
||||||
|
|
||||||
if event_session_obj := load_event_session_obj(
|
if event_session_obj := load_event_session_obj(
|
||||||
event_session_id = event_session_id,
|
event_session_id = event_session_id,
|
||||||
@@ -526,7 +526,7 @@ async def get_event_session_obj(
|
|||||||
else:
|
else:
|
||||||
return mk_resp(data=False, status_code=400, response=response) # Bad Request
|
return mk_resp(data=False, status_code=400, response=response) # Bad Request
|
||||||
|
|
||||||
return mk_resp(data=event_session_dict)
|
return mk_resp(data=event_session_dict, response=response)
|
||||||
#return mk_resp(data=event_session_obj)
|
#return mk_resp(data=event_session_obj)
|
||||||
# ### END ### API Event Session ### get_event_session_obj() ###
|
# ### END ### API Event Session ### get_event_session_obj() ###
|
||||||
|
|
||||||
@@ -558,8 +558,8 @@ async def get_event_event_session_obj_li(
|
|||||||
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())
|
||||||
|
|
||||||
if event_id := redis_lookup_id_random(record_id_random=event_id, table_name='person'): pass
|
if event_id := redis_lookup_id_random(record_id_random=event_id, table_name='event'): pass
|
||||||
else: return mk_resp(data=None, status_code=404)
|
else: return mk_resp(data=None, status_code=404, response=response)
|
||||||
|
|
||||||
# Updated 2021-08-26
|
# Updated 2021-08-26
|
||||||
if event_session_rec_list_result := get_event_session_rec_list(
|
if event_session_rec_list_result := get_event_session_rec_list(
|
||||||
@@ -594,10 +594,81 @@ async def get_event_event_session_obj_li(
|
|||||||
else:
|
else:
|
||||||
return mk_resp(data=False, status_code=400, response=response) # Bad Request
|
return mk_resp(data=False, status_code=400, response=response) # Bad Request
|
||||||
|
|
||||||
return mk_resp(data=response_data)
|
return mk_resp(data=response_data, response=response)
|
||||||
# ### END ### API Event Session Methods ### get_event_event_session_obj_li() ###
|
# ### END ### API Event Session Methods ### get_event_event_session_obj_li() ###
|
||||||
|
|
||||||
|
|
||||||
|
# ### BEGIN ### API Event Session ### search_event_session_obj_li() ###
|
||||||
|
# Updated 2021-09-21
|
||||||
|
@router.get('/event/{event_id}/session/search', response_model=Resp_Body_Base)
|
||||||
|
async def search_event_session_obj_li(
|
||||||
|
# account_id: str = Query(None, min_length=11, max_length=22),
|
||||||
|
event_id: str = Query(None, min_length=11, max_length=22),
|
||||||
|
event_session_id: str = Query('%', max_length=22),
|
||||||
|
event_session_code: str = Query('%', max_length=50),
|
||||||
|
event_session_name: str = Query('%', max_length=50),
|
||||||
|
limit: int = 50,
|
||||||
|
enabled: str = 'enabled',
|
||||||
|
x_account_id: str = Header(...),
|
||||||
|
by_alias: bool = True,
|
||||||
|
exclude_unset: bool = True,
|
||||||
|
response: Response = Response,
|
||||||
|
):
|
||||||
|
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
|
log.debug(locals())
|
||||||
|
|
||||||
|
data = {}
|
||||||
|
data['account_id_random'] = x_account_id
|
||||||
|
data['event_id_random'] = event_id
|
||||||
|
data['event_session_id'] = '%'+event_session_id+'%'
|
||||||
|
data['event_session_code'] = '%'+event_session_code+'%'
|
||||||
|
data['event_session_name'] = '%'+event_session_name+'%' # Adding the % symbol here because it turns certain combinations into special characters
|
||||||
|
# data['from_datetime'] = from_datetime
|
||||||
|
# data['to_datetime'] = to_datetime
|
||||||
|
log.debug(data)
|
||||||
|
|
||||||
|
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 = ''
|
||||||
|
|
||||||
|
if limit:
|
||||||
|
data['limit'] = limit
|
||||||
|
sql_limit = f'LIMIT :limit'
|
||||||
|
else:
|
||||||
|
sql_limit = ''
|
||||||
|
|
||||||
|
sql = f"""
|
||||||
|
SELECT *
|
||||||
|
FROM `v_event_session` AS event_session
|
||||||
|
WHERE event_session.account_id = :account_id
|
||||||
|
AND event_session.event_id = :event_id
|
||||||
|
AND (event_session.event_session_code LIKE :event_session_code OR event_session.event_session_code IS NULL)
|
||||||
|
AND event_session.name LIKE :event_session_name
|
||||||
|
{sql_enabled}
|
||||||
|
ORDER BY event_session.start_datetime ASC, event_session.name ASC, event_session.created_on DESC, event_session.updated_on DESC
|
||||||
|
{sql_limit};
|
||||||
|
"""
|
||||||
|
|
||||||
|
log.debug(sql)
|
||||||
|
if sql_result := sql_select(data=data, sql=sql, as_list=True, rm_id_random=True):
|
||||||
|
resp_data_li = []
|
||||||
|
for record in sql_result:
|
||||||
|
resp_data = Event_Session_Base(**record).dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
||||||
|
resp_data_li.append(resp_data)
|
||||||
|
|
||||||
|
return mk_resp(data=resp_data_li, response=response)
|
||||||
|
else:
|
||||||
|
log.debug(sql_result)
|
||||||
|
return mk_resp(data=False, status_code=404, response=response)
|
||||||
|
# ### END ### API Event Session ### search_event_session_obj_li() ###
|
||||||
|
|
||||||
|
|
||||||
@router.delete('/event/session/{obj_id}', response_model=Resp_Body_Base)
|
@router.delete('/event/session/{obj_id}', response_model=Resp_Body_Base)
|
||||||
async def delete_event_session_obj(
|
async def delete_event_session_obj(
|
||||||
obj_id: str = Query(..., min_length=1, max_length=22),
|
obj_id: str = Query(..., min_length=1, max_length=22),
|
||||||
|
|||||||
Reference in New Issue
Block a user