diff --git a/app/main.py b/app/main.py index d8abce4..9474a62 100644 --- a/app/main.py +++ b/app/main.py @@ -13,14 +13,14 @@ from typing import Dict, List, Optional, Set, Union # from sqlalchemy import create_engine, text # from sqlalchemy.exc import IntegrityError, OperationalError -from . import config +# from . import config # from app.lib_general import common_route_params, Common_Route_Params # from app.log import log, logging # Import the routers here first: # from app.routers import aether_cfg, api_crud, api, importing, sql, account, activity_log, address, archive, archive_content, contact, cont_edu_cert, cont_edu_cert_person, data_store, event, event_abstract, event_badge, event_badge_importing, event_badge_template, event_device, event_exhibit, event_exhibit_tracking, event_file, event_importing, event_location, event_person, event_person_detail, event_person_tracking, event_presentation, event_presenter, event_registration, event_session, flask_cfg, fundraising, hosted_file, journal, journal_entry, log_client_viewing, lookup, membership_cfg, membership_group, membership_person_group, membership_person, membership_person_profile, membership_type, membership_person_type, order, order_v3, order_line, order_cart, organization, page, person, person_user, post, post_comment, product, qr, site, site_domain, user, websockets_redis, e_confex, e_cvent, c_idaa, e_impexium, e_stripe -from app.db_sql import sql_select # , sql_connect +# from app.db_sql import sql_select # , sql_connect print('### **** *** ** * The Aether API v5 using FastAPI is loading... * ** *** **** ###') @@ -43,558 +43,559 @@ app = FastAPI( log.setLevel(logging.INFO) -log.debug(config.settings) +log.debug('HELP') +# log.debug(config.settings) -if aether_cfg_sql_result := sql_select( - table_name = 'cfg', - record_id = config.settings.AETHER_CFG['id'], - as_list = False, - max_count = 1, - ): - aether_cfg_sql = aether_cfg_sql_result +# if aether_cfg_sql_result := sql_select( +# table_name = 'cfg', +# record_id = config.settings.AETHER_CFG['id'], +# as_list = False, +# max_count = 1, +# ): +# aether_cfg_sql = aether_cfg_sql_result - config.settings.DB['server'] = aether_cfg_sql.get('db_server') - config.settings.DB['port'] = aether_cfg_sql.get('db_port') - config.settings.DB['name'] = aether_cfg_sql.get('db_name') - config.settings.DB['username'] = aether_cfg_sql.get('db_username') - config.settings.DB['password'] = aether_cfg_sql.get('db_password') +# config.settings.DB['server'] = aether_cfg_sql.get('db_server') +# config.settings.DB['port'] = aether_cfg_sql.get('db_port') +# config.settings.DB['name'] = aether_cfg_sql.get('db_name') +# config.settings.DB['username'] = aether_cfg_sql.get('db_username') +# config.settings.DB['password'] = aether_cfg_sql.get('db_password') - DB = config.settings.DB - config.settings.SQLALCHEMY_DB_URI = 'mysql://'+DB['username']+':'+DB['password']+'@'+DB['server']+'/'+DB['name'] - # db_result = sql_connect(config.settings.SQLALCHEMY_DB_URI) - log.debug(config.settings.DB) +# DB = config.settings.DB +# config.settings.SQLALCHEMY_DB_URI = 'mysql://'+DB['username']+':'+DB['password']+'@'+DB['server']+'/'+DB['name'] +# # db_result = sql_connect(config.settings.SQLALCHEMY_DB_URI) +# log.debug(config.settings.DB) - config.settings.SMTP['server'] = aether_cfg_sql.get('smtp_server') - config.settings.SMTP['port'] = aether_cfg_sql.get('smtp_port') - config.settings.SMTP['username'] = aether_cfg_sql.get('smtp_username') - config.settings.SMTP['password'] = aether_cfg_sql.get('smtp_password') +# config.settings.SMTP['server'] = aether_cfg_sql.get('smtp_server') +# config.settings.SMTP['port'] = aether_cfg_sql.get('smtp_port') +# config.settings.SMTP['username'] = aether_cfg_sql.get('smtp_username') +# config.settings.SMTP['password'] = aether_cfg_sql.get('smtp_password') - # config.settings.FILES_PATH['hosted_files_root'] = aether_cfg_sql.get('PATH_HOSTED_FILES_ROOT') - # config.settings.FILES_PATH['hosted_tmp_root'] = aether_cfg_sql.get('PATH_HOSTED_TMP_ROOT') +# # config.settings.FILES_PATH['hosted_files_root'] = aether_cfg_sql.get('PATH_HOSTED_FILES_ROOT') +# # config.settings.FILES_PATH['hosted_tmp_root'] = aether_cfg_sql.get('PATH_HOSTED_TMP_ROOT') - config.settings.FILES_PATH['hosted_files_root'] = aether_cfg_sql.get('path_hosted_files_root') - config.settings.FILES_PATH['hosted_tmp_root'] = aether_cfg_sql.get('path_hosted_tmp_root') -else: - # aether_cfg_sql_result - pass -log.debug(aether_cfg_sql_result) -log.debug(config.settings) +# config.settings.FILES_PATH['hosted_files_root'] = aether_cfg_sql.get('path_hosted_files_root') +# config.settings.FILES_PATH['hosted_tmp_root'] = aether_cfg_sql.get('path_hosted_tmp_root') +# else: +# # aether_cfg_sql_result +# pass +# log.debug(aether_cfg_sql_result) +# log.debug(config.settings) -# @lru_cache() -# def get_settings(): -# return config.Settings() +# # @lru_cache() +# # def get_settings(): +# # return config.Settings() -app.mount('/static', StaticFiles(directory='static'), name='static') +# app.mount('/static', StaticFiles(directory='static'), name='static') -# # Set up each route once the router has been imported -# app.include_router( -# aether_cfg.router, -# tags=['Aether Config'], -# ) -# app.include_router( -# api_crud.router, -# prefix='/crud', -# tags=['CRUD'], -# #dependencies=[Depends(get_token_header)], -# #dependencies=[Depends(get_account_header)], -# #responses={404: {'description': 'Not found'}}, -# ) -# app.include_router( -# api.router, -# prefix='/api', -# tags=['API'], -# ) -# app.include_router( -# flask_cfg.router, -# prefix='/flask_cfg', -# tags=['Flask CFG'], -# ) -# app.include_router( -# importing.router, -# prefix='/importing', -# tags=['Importing'], -# ) -# app.include_router( -# sql.router, -# # prefix='/sql', -# tags=['SQL'], -# ) +# # # Set up each route once the router has been imported +# # app.include_router( +# # aether_cfg.router, +# # tags=['Aether Config'], +# # ) +# # app.include_router( +# # api_crud.router, +# # prefix='/crud', +# # tags=['CRUD'], +# # #dependencies=[Depends(get_token_header)], +# # #dependencies=[Depends(get_account_header)], +# # #responses={404: {'description': 'Not found'}}, +# # ) +# # app.include_router( +# # api.router, +# # prefix='/api', +# # tags=['API'], +# # ) # # app.include_router( # # flask_cfg.router, -# # prefix='/redis', -# # tags=['Redis'], +# # prefix='/flask_cfg', +# # tags=['Flask CFG'], # # ) - -# app.include_router( -# account.router, -# # prefix='/account', -# tags=['Account'], -# ) -# app.include_router( -# activity_log.router, -# prefix='/activity_log', -# tags=['Activity Log'], -# ) -# app.include_router( -# address.router, -# prefix='/address', -# tags=['Address'], -# ) -# app.include_router( -# archive.router, -# # prefix='/archive', -# tags=['Archive'], -# ) -# app.include_router( -# archive_content.router, -# prefix='/archive/content', -# tags=['Archive Content'], -# ) -# app.include_router( -# contact.router, -# prefix='/contact', -# tags=['Contact'], -# ) -# app.include_router( -# cont_edu_cert.router, -# tags=['Cont Edu Cert'], -# ) -# app.include_router( -# cont_edu_cert_person.router, -# tags=['Cont Edu Cert Person'], -# ) -# app.include_router( -# data_store.router, -# # prefix='/data_store', -# tags=['Data Store'], -# ) -# app.include_router( -# event.router, -# # prefix='/event', -# tags=['Event'], -# ) -# app.include_router( -# event_abstract.router, -# tags=['Event Abstract'], -# ) -# app.include_router( -# event_badge.router, -# tags=['Event Badge'], -# ) -# app.include_router( -# event_badge_importing.router, -# tags=['Event Badge Importing'], -# ) -# app.include_router( -# event_badge_template.router, -# # prefix='/event/badge/template', -# tags=['Event Badge Template'], -# ) -# app.include_router( -# event_device.router, -# # prefix='/event/device', -# tags=['Event Device'], -# ) -# app.include_router( -# event_exhibit.router, -# # prefix='/event/exhibit', -# tags=['Event Exhibit'], -# ) -# app.include_router( -# event_exhibit_tracking.router, -# # prefix='/event/exhibit/tracking', -# tags=['Event Exhibit Tracking'], -# ) -# app.include_router( -# event_file.router, -# # prefix='/event/file', -# tags=['Event File'], -# ) -# app.include_router( -# event_importing.router, -# # prefix='/event/importing', -# tags=['Event Importing'], -# ) -# app.include_router( -# event_location.router, -# # prefix='/event/location', -# tags=['Event Location'], -# ) -# app.include_router( -# event_person.router, -# # prefix='/event/person', -# tags=['Event Person'], -# ) -# app.include_router( -# event_person.router, -# prefix='/event/person/detail', -# tags=['Event Person Detail'], -# ) -# app.include_router( -# event_person_tracking.router, -# tags=['Event Person Tracking'], -# ) -# app.include_router( -# event_presentation.router, -# # prefix='/event/presentation', -# tags=['Event Presentation'], -# ) -# app.include_router( -# event_presenter.router, -# prefix='/event/presenter', -# tags=['Event Presenter'], -# ) -# app.include_router( -# event_registration.router, -# prefix='/event/registration', -# tags=['Event Registration'], -# ) -# app.include_router( -# event_session.router, -# # prefix='/event/session', -# tags=['Event Session'], -# ) -# app.include_router( -# fundraising.router, -# tags=['Fundraising'], -# ) -# app.include_router( -# hosted_file.router, -# prefix='/hosted_file', -# tags=['Hosted File'], -# ) -# app.include_router( -# journal.router, -# prefix='/journal', -# tags=['Journal'], -# ) -# app.include_router( -# journal_entry.router, -# # prefix='/journal/entry', -# tags=['Journal Entry'], -# ) -# app.include_router( -# log_client_viewing.router, -# # prefix='/log/client_viewing', -# tags=['Log Client Viewing'], -# ) -# app.include_router( -# lookup.router, -# prefix='/lu', -# tags=['Lookup'], -# ) -# app.include_router( -# membership_cfg.router, -# tags=['Membership Config'], -# ) -# app.include_router( -# membership_group.router, -# tags=['Membership Group'], -# ) -# app.include_router( -# membership_person_group.router, -# tags=['Membership Group Person'], -# ) -# app.include_router( -# membership_person_profile.router, -# tags=['Membership Person Profile'], -# ) -# app.include_router( -# membership_person.router, -# tags=['Membership Person'], -# ) -# app.include_router( -# membership_type.router, -# tags=['Membership Type'], -# ) -# app.include_router( -# membership_person_type.router, -# tags=['Membership Type Person'], -# ) -# app.include_router( -# order.router, -# # prefix='/order', -# tags=['Order'], -# ) -# app.include_router( -# order_v3.router, -# # prefix='/order', -# tags=['Order v3'], -# ) -# app.include_router( -# order_line.router, -# # prefix='/order', -# tags=['Order Line'], -# ) -# app.include_router( -# order_cart.router, -# prefix='/order/cart', -# tags=['Order Cart'], -# ) -# app.include_router( -# organization.router, -# prefix='/organization', -# tags=['Organization'], -# ) -# app.include_router( -# page.router, -# prefix='/page', -# tags=['Page'], -# ) -# app.include_router( -# person.router, -# tags=['Person'], -# ) -# app.include_router( -# person_user.router, -# prefix='/person_user', -# tags=['Person User'], -# ) -# app.include_router( -# post.router, -# # prefix='/post', -# tags=['Post'], -# ) -# app.include_router( -# post_comment.router, -# prefix='/post/comment', -# tags=['Post Comment'], -# ) -# app.include_router( -# product.router, -# # prefix='/product', -# tags=['Product'], -# ) -# app.include_router( -# qr.router, -# tags=['QR'], -# ) -# app.include_router( -# site.router, -# # prefix='/site', -# tags=['Site'], -# ) -# app.include_router( -# site_domain.router, -# # prefix='/site/domain', -# tags=['Site Domain'], -# ) -# app.include_router( -# user.router, -# tags=['User'], -# ) # # app.include_router( -# # websockets.router, -# # # prefix='/websocket', -# # tags=['Websockets'], -# # # dependencies=[Depends(get_token_header)], -# # # responses={404: {'description': 'Not found'}}, +# # importing.router, +# # prefix='/importing', +# # tags=['Importing'], # # ) -# app.include_router( -# websockets_redis.router, -# tags=['Websockets (Redis)'], -# ) -# app.include_router( -# e_confex.router, -# prefix='/e/confex', -# tags=['External Service: Confex'], -# ) -# app.include_router( -# e_cvent.router, -# prefix='/e/cvent', -# tags=['External Service: Cvent'], -# ) -# app.include_router( -# e_impexium.router, -# prefix='/e/impexium', -# tags=['External Service: Impexium'], -# ) -# app.include_router( -# e_stripe.router, -# prefix='/e/stripe', -# tags=['External Service: Stripe'], -# ) +# # app.include_router( +# # sql.router, +# # # prefix='/sql', +# # tags=['SQL'], +# # ) +# # # app.include_router( +# # # flask_cfg.router, +# # # prefix='/redis', +# # # tags=['Redis'], +# # # ) -# app.include_router( -# c_idaa.router, -# prefix='/c/idaa', -# tags=['Client: IDAA'], -# ) +# # app.include_router( +# # account.router, +# # # prefix='/account', +# # tags=['Account'], +# # ) +# # app.include_router( +# # activity_log.router, +# # prefix='/activity_log', +# # tags=['Activity Log'], +# # ) +# # app.include_router( +# # address.router, +# # prefix='/address', +# # tags=['Address'], +# # ) +# # app.include_router( +# # archive.router, +# # # prefix='/archive', +# # tags=['Archive'], +# # ) +# # app.include_router( +# # archive_content.router, +# # prefix='/archive/content', +# # tags=['Archive Content'], +# # ) +# # app.include_router( +# # contact.router, +# # prefix='/contact', +# # tags=['Contact'], +# # ) +# # app.include_router( +# # cont_edu_cert.router, +# # tags=['Cont Edu Cert'], +# # ) +# # app.include_router( +# # cont_edu_cert_person.router, +# # tags=['Cont Edu Cert Person'], +# # ) +# # app.include_router( +# # data_store.router, +# # # prefix='/data_store', +# # tags=['Data Store'], +# # ) +# # app.include_router( +# # event.router, +# # # prefix='/event', +# # tags=['Event'], +# # ) +# # app.include_router( +# # event_abstract.router, +# # tags=['Event Abstract'], +# # ) +# # app.include_router( +# # event_badge.router, +# # tags=['Event Badge'], +# # ) +# # app.include_router( +# # event_badge_importing.router, +# # tags=['Event Badge Importing'], +# # ) +# # app.include_router( +# # event_badge_template.router, +# # # prefix='/event/badge/template', +# # tags=['Event Badge Template'], +# # ) +# # app.include_router( +# # event_device.router, +# # # prefix='/event/device', +# # tags=['Event Device'], +# # ) +# # app.include_router( +# # event_exhibit.router, +# # # prefix='/event/exhibit', +# # tags=['Event Exhibit'], +# # ) +# # app.include_router( +# # event_exhibit_tracking.router, +# # # prefix='/event/exhibit/tracking', +# # tags=['Event Exhibit Tracking'], +# # ) +# # app.include_router( +# # event_file.router, +# # # prefix='/event/file', +# # tags=['Event File'], +# # ) +# # app.include_router( +# # event_importing.router, +# # # prefix='/event/importing', +# # tags=['Event Importing'], +# # ) +# # app.include_router( +# # event_location.router, +# # # prefix='/event/location', +# # tags=['Event Location'], +# # ) +# # app.include_router( +# # event_person.router, +# # # prefix='/event/person', +# # tags=['Event Person'], +# # ) +# # app.include_router( +# # event_person.router, +# # prefix='/event/person/detail', +# # tags=['Event Person Detail'], +# # ) +# # app.include_router( +# # event_person_tracking.router, +# # tags=['Event Person Tracking'], +# # ) +# # app.include_router( +# # event_presentation.router, +# # # prefix='/event/presentation', +# # tags=['Event Presentation'], +# # ) +# # app.include_router( +# # event_presenter.router, +# # prefix='/event/presenter', +# # tags=['Event Presenter'], +# # ) +# # app.include_router( +# # event_registration.router, +# # prefix='/event/registration', +# # tags=['Event Registration'], +# # ) +# # app.include_router( +# # event_session.router, +# # # prefix='/event/session', +# # tags=['Event Session'], +# # ) +# # app.include_router( +# # fundraising.router, +# # tags=['Fundraising'], +# # ) +# # app.include_router( +# # hosted_file.router, +# # prefix='/hosted_file', +# # tags=['Hosted File'], +# # ) +# # app.include_router( +# # journal.router, +# # prefix='/journal', +# # tags=['Journal'], +# # ) +# # app.include_router( +# # journal_entry.router, +# # # prefix='/journal/entry', +# # tags=['Journal Entry'], +# # ) +# # app.include_router( +# # log_client_viewing.router, +# # # prefix='/log/client_viewing', +# # tags=['Log Client Viewing'], +# # ) +# # app.include_router( +# # lookup.router, +# # prefix='/lu', +# # tags=['Lookup'], +# # ) +# # app.include_router( +# # membership_cfg.router, +# # tags=['Membership Config'], +# # ) +# # app.include_router( +# # membership_group.router, +# # tags=['Membership Group'], +# # ) +# # app.include_router( +# # membership_person_group.router, +# # tags=['Membership Group Person'], +# # ) +# # app.include_router( +# # membership_person_profile.router, +# # tags=['Membership Person Profile'], +# # ) +# # app.include_router( +# # membership_person.router, +# # tags=['Membership Person'], +# # ) +# # app.include_router( +# # membership_type.router, +# # tags=['Membership Type'], +# # ) +# # app.include_router( +# # membership_person_type.router, +# # tags=['Membership Type Person'], +# # ) +# # app.include_router( +# # order.router, +# # # prefix='/order', +# # tags=['Order'], +# # ) +# # app.include_router( +# # order_v3.router, +# # # prefix='/order', +# # tags=['Order v3'], +# # ) +# # app.include_router( +# # order_line.router, +# # # prefix='/order', +# # tags=['Order Line'], +# # ) +# # app.include_router( +# # order_cart.router, +# # prefix='/order/cart', +# # tags=['Order Cart'], +# # ) +# # app.include_router( +# # organization.router, +# # prefix='/organization', +# # tags=['Organization'], +# # ) +# # app.include_router( +# # page.router, +# # prefix='/page', +# # tags=['Page'], +# # ) +# # app.include_router( +# # person.router, +# # tags=['Person'], +# # ) +# # app.include_router( +# # person_user.router, +# # prefix='/person_user', +# # tags=['Person User'], +# # ) +# # app.include_router( +# # post.router, +# # # prefix='/post', +# # tags=['Post'], +# # ) +# # app.include_router( +# # post_comment.router, +# # prefix='/post/comment', +# # tags=['Post Comment'], +# # ) +# # app.include_router( +# # product.router, +# # # prefix='/product', +# # tags=['Product'], +# # ) +# # app.include_router( +# # qr.router, +# # tags=['QR'], +# # ) +# # app.include_router( +# # site.router, +# # # prefix='/site', +# # tags=['Site'], +# # ) +# # app.include_router( +# # site_domain.router, +# # # prefix='/site/domain', +# # tags=['Site Domain'], +# # ) +# # app.include_router( +# # user.router, +# # tags=['User'], +# # ) +# # # app.include_router( +# # # websockets.router, +# # # # prefix='/websocket', +# # # tags=['Websockets'], +# # # # dependencies=[Depends(get_token_header)], +# # # # responses={404: {'description': 'Not found'}}, +# # # ) +# # app.include_router( +# # websockets_redis.router, +# # tags=['Websockets (Redis)'], +# # ) +# # app.include_router( +# # e_confex.router, +# # prefix='/e/confex', +# # tags=['External Service: Confex'], +# # ) +# # app.include_router( +# # e_cvent.router, +# # prefix='/e/cvent', +# # tags=['External Service: Cvent'], +# # ) +# # app.include_router( +# # e_impexium.router, +# # prefix='/e/impexium', +# # tags=['External Service: Impexium'], +# # ) +# # app.include_router( +# # e_stripe.router, +# # prefix='/e/stripe', +# # tags=['External Service: Stripe'], +# # ) + +# # app.include_router( +# # c_idaa.router, +# # prefix='/c/idaa', +# # tags=['Client: IDAA'], +# # ) -# # BEGIN: CORS -# # NOTE: Eventually this should query the DB for the specific list based on the cfg table and or site_domain table. That way it is dynamic and only allowing those defined in the DB. No wildcards or regex. -# # NOTE: Need to include .localhost for less browser restrictions! Mainly for audio and video. -# app.add_middleware( -# CORSMiddleware, -# # allow_origins = origins, -# allow_origins = config.settings.ORIGINS, -# allow_origin_regex = config.settings.ORIGINS_REGEX, -# # allow_origin_regex = 'https://.*\.oneskyit\.com', -# allow_credentials = True, -# allow_methods = ['*'], -# allow_headers = ['*'], -# #expose_headers = [], -# #max_age = 600, -# ) -# # END: CORS +# # # BEGIN: CORS +# # # NOTE: Eventually this should query the DB for the specific list based on the cfg table and or site_domain table. That way it is dynamic and only allowing those defined in the DB. No wildcards or regex. +# # # NOTE: Need to include .localhost for less browser restrictions! Mainly for audio and video. +# # app.add_middleware( +# # CORSMiddleware, +# # # allow_origins = origins, +# # allow_origins = config.settings.ORIGINS, +# # allow_origin_regex = config.settings.ORIGINS_REGEX, +# # # allow_origin_regex = 'https://.*\.oneskyit\.com', +# # allow_credentials = True, +# # allow_methods = ['*'], +# # allow_headers = ['*'], +# # #expose_headers = [], +# # #max_age = 600, +# # ) +# # # END: CORS -# @app.on_event('startup') -# async def startup(): -# log.setLevel(logging.INFO) # DEBUG, INFO, WARN, WARNING, ERROR, EXCEPTION, CRITICAL -# log.debug(locals()) +# # @app.on_event('startup') +# # async def startup(): +# # log.setLevel(logging.INFO) # DEBUG, INFO, WARN, WARNING, ERROR, EXCEPTION, CRITICAL +# # log.debug(locals()) -# log.info('The Aether FastAPI API is starting up...') -# #await database.connect() +# # log.info('The Aether FastAPI API is starting up...') +# # #await database.connect() -# @app.on_event('shutdown') -# async def shutdown(): -# log.setLevel(logging.INFO) # DEBUG, INFO, WARN, WARNING, ERROR, EXCEPTION, CRITICAL -# log.debug(locals()) +# # @app.on_event('shutdown') +# # async def shutdown(): +# # log.setLevel(logging.INFO) # DEBUG, INFO, WARN, WARNING, ERROR, EXCEPTION, CRITICAL +# # log.debug(locals()) -# log.info('The Aether FastAPI API is shutting down...') -# #await database.disconnect() +# # log.info('The Aether FastAPI API is shutting down...') +# # #await database.disconnect() -# #Add the processing time to the response header. -# @app.middleware('http') -# async def add_process_time_header(request: Request, call_next): -# import time -# start_time = time.time() -# response = await call_next(request) -# process_time = time.time() - start_time -# response.headers['X-Process-Time'] = str(process_time) -# return response +# # #Add the processing time to the response header. +# # @app.middleware('http') +# # async def add_process_time_header(request: Request, call_next): +# # import time +# # start_time = time.time() +# # response = await call_next(request) +# # process_time = time.time() - start_time +# # response.headers['X-Process-Time'] = str(process_time) +# # return response -# # ### BEGIN ### API Main ### fastapi_root() ### -# @app.get('/', tags=['Root'], response_class=PlainTextResponse) -# async def fastapi_root(response: Response = Response): -# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARN, WARNING, ERROR, EXCEPTION, CRITICAL -# log.debug(locals()) +# # # ### BEGIN ### API Main ### fastapi_root() ### +# # @app.get('/', tags=['Root'], response_class=PlainTextResponse) +# # async def fastapi_root(response: Response = Response): +# # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARN, WARNING, ERROR, EXCEPTION, CRITICAL +# # log.debug(locals()) -# # log.info(config.settings.APP_NAME) -# log.info('One Sky IT\'s Aether API root (FastAPI)') +# # # log.info(config.settings.APP_NAME) +# # log.info('One Sky IT\'s Aether API root (FastAPI)') -# log.info('***') -# log.debug('This is debug') # 10 DEBUG -# log.info('This is info') # 20 INFO -# log.warning('This is a warning') # 30 WARNING (and WARN) -# log.error('This is an error') # 40 ERROR -# log.exception('This is an exception') # 40 ERROR -# log.critical('This is critical') # 50 CRITICAL -# log.info('^^^') +# # log.info('***') +# # log.debug('This is debug') # 10 DEBUG +# # log.info('This is info') # 20 INFO +# # log.warning('This is a warning') # 30 WARNING (and WARN) +# # log.error('This is an error') # 40 ERROR +# # log.exception('This is an exception') # 40 ERROR +# # log.critical('This is critical') # 50 CRITICAL +# # log.info('^^^') -# response_data = {} -# response_data['message'] = 'This is One Sky IT\'s Aether API root (FastAPI).' +# # response_data = {} +# # response_data['message'] = 'This is One Sky IT\'s Aether API root (FastAPI).' -# current_datetime = datetime.datetime.now() -# current_datetime_string = current_datetime.isoformat() +# # current_datetime = datetime.datetime.now() +# # current_datetime_string = current_datetime.isoformat() -# timezone = pytz.timezone("America/New_York") -# current_datetime_tz = timezone.localize(current_datetime) -# current_datetime_tz_string = current_datetime_tz.isoformat() +# # timezone = pytz.timezone("America/New_York") +# # current_datetime_tz = timezone.localize(current_datetime) +# # current_datetime_tz_string = current_datetime_tz.isoformat() -# current_datetime_utc = datetime.datetime.utcnow() -# current_datetime_utc_string = current_datetime_utc.isoformat() +# # current_datetime_utc = datetime.datetime.utcnow() +# # current_datetime_utc_string = current_datetime_utc.isoformat() -# current_datetime_utc_localize = pytz.utc.localize(current_datetime_utc) -# current_datetime_utc_localize_string = current_datetime_utc_localize.isoformat() +# # current_datetime_utc_localize = pytz.utc.localize(current_datetime_utc) +# # current_datetime_utc_localize_string = current_datetime_utc_localize.isoformat() -# current_datetime_utc_localize_pst = current_datetime_utc_localize.astimezone(pytz.timezone("America/Los_Angeles")) -# current_datetime_utc_localize_pst_string = current_datetime_utc_localize_pst.isoformat() +# # current_datetime_utc_localize_pst = current_datetime_utc_localize.astimezone(pytz.timezone("America/Los_Angeles")) +# # current_datetime_utc_localize_pst_string = current_datetime_utc_localize_pst.isoformat() -# response_data['datetime'] = current_datetime_string -# response_data['datetime_tz'] = current_datetime_tz_string -# response_data['datetime_utc'] = current_datetime_utc_string -# response_data['datetime_utc_localize'] = current_datetime_utc_localize_string -# response_data['datetime_utc_localize_pst'] = current_datetime_utc_localize_pst_string +# # response_data['datetime'] = current_datetime_string +# # response_data['datetime_tz'] = current_datetime_tz_string +# # response_data['datetime_utc'] = current_datetime_utc_string +# # response_data['datetime_utc_localize'] = current_datetime_utc_localize_string +# # response_data['datetime_utc_localize_pst'] = current_datetime_utc_localize_pst_string -# response_data['url_safe_string_4_bytes_1'] = secrets.token_urlsafe(4) +# # response_data['url_safe_string_4_bytes_1'] = secrets.token_urlsafe(4) -# response_data['url_safe_string_8_bytes_1'] = secrets.token_urlsafe(8) -# response_data['url_safe_string_8_bytes_2'] = secrets.token_urlsafe(8) -# response_data['url_safe_string_8_bytes_3'] = secrets.token_urlsafe(8) -# response_data['url_safe_string_8_bytes_4'] = secrets.token_urlsafe(8) -# response_data['url_safe_string_8_bytes_5'] = secrets.token_urlsafe(8) +# # response_data['url_safe_string_8_bytes_1'] = secrets.token_urlsafe(8) +# # response_data['url_safe_string_8_bytes_2'] = secrets.token_urlsafe(8) +# # response_data['url_safe_string_8_bytes_3'] = secrets.token_urlsafe(8) +# # response_data['url_safe_string_8_bytes_4'] = secrets.token_urlsafe(8) +# # response_data['url_safe_string_8_bytes_5'] = secrets.token_urlsafe(8) -# response_data['url_safe_string_16_bytes_1'] = secrets.token_urlsafe(16) -# response_data['url_safe_string_16_bytes_2'] = secrets.token_urlsafe(16) -# response_data['url_safe_string_16_bytes_3'] = secrets.token_urlsafe(16) -# response_data['url_safe_string_16_bytes_4'] = secrets.token_urlsafe(16) -# response_data['url_safe_string_16_bytes_5'] = secrets.token_urlsafe(16) +# # response_data['url_safe_string_16_bytes_1'] = secrets.token_urlsafe(16) +# # response_data['url_safe_string_16_bytes_2'] = secrets.token_urlsafe(16) +# # response_data['url_safe_string_16_bytes_3'] = secrets.token_urlsafe(16) +# # response_data['url_safe_string_16_bytes_4'] = secrets.token_urlsafe(16) +# # response_data['url_safe_string_16_bytes_5'] = secrets.token_urlsafe(16) -# response_data['hex_string_4_bytes_1'] = secrets.token_hex(4) -# response_data['hex_string_8_bytes_1'] = secrets.token_hex(8) -# response_data['hex_string_16_bytes_1'] = secrets.token_hex(16) -# response_data['hex_string_32_bytes_1'] = secrets.token_hex(32) +# # response_data['hex_string_4_bytes_1'] = secrets.token_hex(4) +# # response_data['hex_string_8_bytes_1'] = secrets.token_hex(8) +# # response_data['hex_string_16_bytes_1'] = secrets.token_hex(16) +# # response_data['hex_string_32_bytes_1'] = secrets.token_hex(32) -# log.debug(json.dumps(response_data, indent=4)) -# return json.dumps(response_data, indent=4) # , sort_keys=True -# # ### END ### API Main ### fastapi_root() ### +# # log.debug(json.dumps(response_data, indent=4)) +# # return json.dumps(response_data, indent=4) # , sort_keys=True +# # # ### END ### API Main ### fastapi_root() ### -# # ### BEGIN ### API Main ### generate_id_random() ### -# # NOTE: This is just a quick utility function to generate a bunch of random IDs. -# # Updated 2022-03-30 -# @app.get('/generate_id_random', tags=['Root'], response_class=PlainTextResponse) -# async def generate_id_random(response: Response = Response): -# log.setLevel(logging.INFO) # DEBUG, INFO, WARN, WARNING, ERROR, EXCEPTION, CRITICAL -# log.debug(locals()) +# # # ### BEGIN ### API Main ### generate_id_random() ### +# # # NOTE: This is just a quick utility function to generate a bunch of random IDs. +# # # Updated 2022-03-30 +# # @app.get('/generate_id_random', tags=['Root'], response_class=PlainTextResponse) +# # async def generate_id_random(response: Response = Response): +# # log.setLevel(logging.INFO) # DEBUG, INFO, WARN, WARNING, ERROR, EXCEPTION, CRITICAL +# # log.debug(locals()) -# response_data = {} +# # response_data = {} -# html_list = '