Trying to fix a logging bug?

This commit is contained in:
Scott Idem
2023-06-13 11:47:58 -04:00
parent ffed474c34
commit 9c75e13aec

View File

@@ -18,7 +18,7 @@ from . import config
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.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
@@ -85,516 +85,516 @@ else:
# 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 = '<ul>'
for x in range(50):
html_list += f'<li>{secrets.token_urlsafe(8)}</li>'
html_list += '</ul>'
# html_list = '<ul>'
# for x in range(50):
# html_list += f'<li>{secrets.token_urlsafe(8)}</li>'
# html_list += '</ul>'
return HTMLResponse(content=html_list, status_code=200)
# ### END ### API Main ### generate_id_random() ###
# return HTMLResponse(content=html_list, status_code=200)
# # ### END ### API Main ### generate_id_random() ###
# ### BEGIN ### API Main ### sql_test() ###
# ### TEST TEST TEST ### #
@app.get('/sql_test', tags=['Testing'], response_class=PlainTextResponse)
async def sql_test(response: Response = Response):
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARN, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
# # ### BEGIN ### API Main ### sql_test() ###
# # ### TEST TEST TEST ### #
# @app.get('/sql_test', tags=['Testing'], response_class=PlainTextResponse)
# async def sql_test(response: Response = Response):
# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARN, WARNING, ERROR, EXCEPTION, CRITICAL
# log.debug(locals())
return mk_resp(data=False, status_code=501, response=response)
# return mk_resp(data=False, status_code=501, response=response)
log.info('Getting all accounts from DB...')
# log.info('Getting all accounts from DB...')
sql = text(
"""
SELECT id, id_random, name, enable
FROM `account`
"""
)
try:
result = db.execute(sql)
except Exception as e:
log.error('*** An exception happened. ***')
log.error(repr(e))
log.error('***')
log.error(str(e))
log.error('^^^ exception ^^^')
else:
if result.rowcount:
record_li = [dict(record) for record in result.fetchall()]
log.debug(record_li)
else:
log.error('No records found. Something went wrong.')
# sql = text(
# """
# SELECT id, id_random, name, enable
# FROM `account`
# """
# )
# try:
# result = db.execute(sql)
# except Exception as e:
# log.error('*** An exception happened. ***')
# log.error(repr(e))
# log.error('***')
# log.error(str(e))
# log.error('^^^ exception ^^^')
# else:
# if result.rowcount:
# record_li = [dict(record) for record in result.fetchall()]
# log.debug(record_li)
# else:
# log.error('No records found. Something went wrong.')
log.info('Got the account list')
# log.info('Got the account list')
response_data = {}
response_data['message'] = 'This is the Aether API using FastAPI.'
response_data['data'] = record_li
# response_data = {}
# response_data['message'] = 'This is the Aether API using FastAPI.'
# response_data['data'] = record_li
return json.dumps(response_data, indent=4) # , sort_keys=True
# ### END ### API Main ### sql_test() ###
# return json.dumps(response_data, indent=4) # , sort_keys=True
# # ### END ### API Main ### sql_test() ###