General clean up
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
gunicorn
|
gunicorn
|
||||||
uvicorn
|
uvicorn
|
||||||
fastapi[all]
|
fastapi[all]
|
||||||
|
pydantic
|
||||||
SQLAlchemy
|
SQLAlchemy
|
||||||
mysqlclient
|
mysqlclient
|
||||||
redis
|
redis
|
||||||
|
|||||||
197
app/main.py
197
app/main.py
@@ -1,4 +1,4 @@
|
|||||||
import logging, os, random # , uvicorn
|
import datetime, json, logging, os, pytz, random, secrets # , uvicorn
|
||||||
|
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
#from datetime import datetime, time, timedelta
|
#from datetime import datetime, time, timedelta
|
||||||
@@ -14,7 +14,7 @@ from sqlalchemy import create_engine, text
|
|||||||
from sqlalchemy.exc import IntegrityError, OperationalError
|
from sqlalchemy.exc import IntegrityError, OperationalError
|
||||||
|
|
||||||
from . import config
|
from . import config
|
||||||
from app.lib_general import *
|
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:
|
||||||
@@ -57,162 +57,102 @@ app.include_router(
|
|||||||
api.router,
|
api.router,
|
||||||
prefix='/api',
|
prefix='/api',
|
||||||
tags=['API'],
|
tags=['API'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
flask_cfg.router,
|
flask_cfg.router,
|
||||||
prefix='/flask_cfg',
|
prefix='/flask_cfg',
|
||||||
tags=['Flask CFG'],
|
tags=['Flask CFG'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
# app.include_router(
|
# app.include_router(
|
||||||
# flask_cfg.router,
|
# flask_cfg.router,
|
||||||
# prefix='/redis',
|
# prefix='/redis',
|
||||||
# tags=['Redis'],
|
# tags=['Redis'],
|
||||||
# #dependencies=[Depends(get_token_header)],
|
|
||||||
# #dependencies=[Depends(get_account_header)],
|
|
||||||
# #responses={404: {'description': 'Not found'}},
|
|
||||||
# )
|
# )
|
||||||
|
|
||||||
app.include_router(
|
app.include_router(
|
||||||
account.router,
|
account.router,
|
||||||
prefix='/account',
|
prefix='/account',
|
||||||
tags=['Account'],
|
tags=['Account'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
address.router,
|
address.router,
|
||||||
prefix='/address',
|
prefix='/address',
|
||||||
tags=['Address'],
|
tags=['Address'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
archive.router,
|
archive.router,
|
||||||
prefix='/archive',
|
prefix='/archive',
|
||||||
tags=['Archive'],
|
tags=['Archive'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
archive_content.router,
|
archive_content.router,
|
||||||
prefix='/archive/content',
|
prefix='/archive/content',
|
||||||
tags=['Archive Content'],
|
tags=['Archive Content'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
contact.router,
|
contact.router,
|
||||||
prefix='/contact',
|
prefix='/contact',
|
||||||
tags=['Contact'],
|
tags=['Contact'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
event.router,
|
event.router,
|
||||||
prefix='/event',
|
prefix='/event',
|
||||||
tags=['Event'],
|
tags=['Event'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
event_exhibit.router,
|
event_exhibit.router,
|
||||||
prefix='/event/exhibit',
|
prefix='/event/exhibit',
|
||||||
tags=['Event Exhibit'],
|
tags=['Event Exhibit'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
event_file.router,
|
event_file.router,
|
||||||
prefix='/event/file',
|
prefix='/event/file',
|
||||||
tags=['Event File'],
|
tags=['Event File'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
event_person.router,
|
event_person.router,
|
||||||
prefix='/event/person',
|
prefix='/event/person',
|
||||||
tags=['Event Person'],
|
tags=['Event Person'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
event_person.router,
|
event_person.router,
|
||||||
prefix='/event/person/detail',
|
prefix='/event/person/detail',
|
||||||
tags=['Event Person Detail'],
|
tags=['Event Person Detail'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
event_presentation.router,
|
event_presentation.router,
|
||||||
prefix='/event/presentation',
|
prefix='/event/presentation',
|
||||||
tags=['Event Presenter'],
|
tags=['Event Presenter'],
|
||||||
#dependencies=[DependPresenter(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
event_presenter.router,
|
event_presenter.router,
|
||||||
prefix='/event/presenter',
|
prefix='/event/presenter',
|
||||||
tags=['Event Presenter'],
|
tags=['Event Presenter'],
|
||||||
#dependencies=[DependPresenter(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
event_registration.router,
|
event_registration.router,
|
||||||
prefix='/event/registration',
|
prefix='/event/registration',
|
||||||
tags=['Event Registration'],
|
tags=['Event Registration'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
event_session.router,
|
event_session.router,
|
||||||
prefix='/event/session',
|
prefix='/event/session',
|
||||||
tags=['Event Session'],
|
tags=['Event Session'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
hosted_file.router,
|
hosted_file.router,
|
||||||
prefix='/hosted_file',
|
prefix='/hosted_file',
|
||||||
tags=['Hosted File'],
|
tags=['Hosted File'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
journal.router,
|
journal.router,
|
||||||
prefix='/journal',
|
prefix='/journal',
|
||||||
tags=['Journal'],
|
tags=['Journal'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
journal_entry.router,
|
journal_entry.router,
|
||||||
prefix='/journal/entry',
|
prefix='/journal/entry',
|
||||||
tags=['Journal Entry'],
|
tags=['Journal Entry'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
lookup.router,
|
lookup.router,
|
||||||
@@ -238,89 +178,56 @@ app.include_router(
|
|||||||
order.router,
|
order.router,
|
||||||
prefix='/order',
|
prefix='/order',
|
||||||
tags=['Order'],
|
tags=['Order'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
order_cart.router,
|
order_cart.router,
|
||||||
prefix='/order/cart',
|
prefix='/order/cart',
|
||||||
tags=['Order Cart'],
|
tags=['Order Cart'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
organization.router,
|
organization.router,
|
||||||
prefix='/organization',
|
prefix='/organization',
|
||||||
tags=['Organization'],
|
tags=['Organization'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
page.router,
|
page.router,
|
||||||
prefix='/page',
|
prefix='/page',
|
||||||
tags=['Page'],
|
tags=['Page'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
person.router,
|
person.router,
|
||||||
prefix='/person',
|
prefix='/person',
|
||||||
tags=['Person'],
|
tags=['Person'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
post.router,
|
post.router,
|
||||||
prefix='/post',
|
prefix='/post',
|
||||||
tags=['Post'],
|
tags=['Post'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
post_comment.router,
|
post_comment.router,
|
||||||
prefix='/post/comment',
|
prefix='/post/comment',
|
||||||
tags=['Post Comment'],
|
tags=['Post Comment'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
product.router,
|
product.router,
|
||||||
prefix='/product',
|
prefix='/product',
|
||||||
tags=['Product'],
|
tags=['Product'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
site.router,
|
site.router,
|
||||||
prefix='/site',
|
prefix='/site',
|
||||||
tags=['Site'],
|
tags=['Site'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
site_domain.router,
|
site_domain.router,
|
||||||
prefix='/site/domain',
|
prefix='/site/domain',
|
||||||
tags=['Site Domain'],
|
tags=['Site Domain'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
user.router,
|
user.router,
|
||||||
prefix='/user',
|
prefix='/user',
|
||||||
tags=['User'],
|
tags=['User'],
|
||||||
#dependencies=[Depends(get_token_header)],
|
|
||||||
#dependencies=[Depends(get_account_header)],
|
|
||||||
#responses={404: {'description': 'Not found'}},
|
|
||||||
)
|
)
|
||||||
app.include_router(
|
app.include_router(
|
||||||
user_person.router,
|
user_person.router,
|
||||||
@@ -396,38 +303,74 @@ async def add_process_time_header(request: Request, call_next):
|
|||||||
return response
|
return response
|
||||||
|
|
||||||
|
|
||||||
@app.get('/', tags=['Default'])
|
# ### BEGIN ### API Main ### fastapi_root() ###
|
||||||
async def get_root():
|
@app.get('/', tags=['Root'], response_class=PlainTextResponse)
|
||||||
log.setLevel(logging.INFO) # DEBUG, INFO, WARN, WARNING, ERROR, EXCEPTION, CRITICAL
|
async def fastapi_root():
|
||||||
|
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARN, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
log.debug(locals())
|
log.debug(locals())
|
||||||
|
|
||||||
log.info(config.settings.APP_NAME)
|
log.info(config.settings.APP_NAME)
|
||||||
|
|
||||||
log.setLevel(logging.DEBUG)
|
log.info('***')
|
||||||
|
|
||||||
print('***')
|
|
||||||
log.debug('This is debug') # 10 DEBUG
|
log.debug('This is debug') # 10 DEBUG
|
||||||
log.info('This is info') # 20 INFO
|
log.info('This is info') # 20 INFO
|
||||||
log.warn('This is warn') # 30 WARNING
|
log.warning('This is a warning') # 30 WARNING (and WARN)
|
||||||
log.warning('This is a warning') # 30 WARNING
|
|
||||||
log.error('This is an error') # 40 ERROR
|
log.error('This is an error') # 40 ERROR
|
||||||
log.exception('This is an exception') # 40 ERROR
|
log.exception('This is an exception') # 40 ERROR
|
||||||
log.critical('This is critical') # 50 CRITICAL
|
log.critical('This is critical') # 50 CRITICAL
|
||||||
#print('----')
|
log.info('^^^')
|
||||||
#logging.debug('This is debug') # 10 DEBUG
|
|
||||||
#logging.info('This is info') # 20 INFO
|
|
||||||
#logging.warn('This is warn') # 30 WARNING
|
|
||||||
#logging.warning('This is a warning') # 30 WARNING
|
|
||||||
#logging.error('This is an error') # 40 ERROR
|
|
||||||
#logging.exception('This is an exception') # 40 ERROR
|
|
||||||
#logging.critical('This is critical') # 50 CRITICAL
|
|
||||||
print('^^^')
|
|
||||||
|
|
||||||
return {'hello': 'This is the Aether API using FastAPI.'}
|
response_data = {}
|
||||||
|
response_data['message'] = 'This is the Aether API using FastAPI.'
|
||||||
|
|
||||||
|
|
||||||
|
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()
|
||||||
|
|
||||||
|
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_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['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_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)
|
||||||
|
|
||||||
|
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 ### quick_test() ###
|
||||||
# ### TEST TEST TEST ### #
|
# ### TEST TEST TEST ### #
|
||||||
@app.get('/quick_test', tags=['Default'])
|
@app.get('/quick_test', tags=['Testing'], response_class=PlainTextResponse)
|
||||||
async def quick_test():
|
async def quick_test():
|
||||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARN, WARNING, ERROR, EXCEPTION, CRITICAL
|
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARN, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
log.debug(locals())
|
log.debug(locals())
|
||||||
@@ -435,11 +378,11 @@ async def quick_test():
|
|||||||
log.info('Getting all accounts...')
|
log.info('Getting all accounts...')
|
||||||
|
|
||||||
sql = text(
|
sql = text(
|
||||||
"""
|
"""
|
||||||
SELECT *
|
SELECT id, id_random, name, enable
|
||||||
FROM `account`
|
FROM `account`
|
||||||
"""
|
"""
|
||||||
)
|
)
|
||||||
try:
|
try:
|
||||||
result = db.execute(sql)
|
result = db.execute(sql)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@@ -450,16 +393,16 @@ async def quick_test():
|
|||||||
log.error('^^^ exception ^^^')
|
log.error('^^^ exception ^^^')
|
||||||
else:
|
else:
|
||||||
if result.rowcount:
|
if result.rowcount:
|
||||||
records = result.fetchall()
|
record_li = [dict(record) for record in result.fetchall()]
|
||||||
log.debug(records)
|
log.debug(record_li)
|
||||||
else:
|
else:
|
||||||
log.warning('Something went wrong.')
|
log.error('No records found. Something went wrong.')
|
||||||
|
|
||||||
log.info('Got the account list')
|
log.info('Got the account list')
|
||||||
|
|
||||||
response = {}
|
response_data = {}
|
||||||
response['hello'] = 'This is the Aether API using FastAPI.'
|
response_data['message'] = 'This is the Aether API using FastAPI.'
|
||||||
response['data'] = records
|
response_data['data'] = record_li
|
||||||
|
|
||||||
return response
|
return json.dumps(response_data, indent=4) # , sort_keys=True
|
||||||
# ### TEST TEST TEST ### #
|
# ### END ### API Main ### quick_test() ###
|
||||||
|
|||||||
@@ -121,8 +121,9 @@ def get_membership_group_member_rec_list(
|
|||||||
ORDER BY `tbl`.created_on DESC, `tbl`.updated_on DESC
|
ORDER BY `tbl`.created_on DESC, `tbl`.updated_on DESC
|
||||||
{sql_limit};
|
{sql_limit};
|
||||||
"""
|
"""
|
||||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
log.debug(sql)
|
log.debug(sql)
|
||||||
|
|
||||||
if membership_group_member_rec_li_result := sql_select(data=data, sql=sql, as_list=True):
|
if membership_group_member_rec_li_result := sql_select(data=data, sql=sql, as_list=True):
|
||||||
membership_group_member_rec_li = membership_group_member_rec_li_result
|
membership_group_member_rec_li = membership_group_member_rec_li_result
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ def load_membership_member_obj(
|
|||||||
# inc_membership_member_profile_cust: bool = False,
|
# inc_membership_member_profile_cust: bool = False,
|
||||||
inc_organization: bool = False,
|
inc_organization: bool = False,
|
||||||
inc_person: bool = False,
|
inc_person: bool = False,
|
||||||
|
inc_product: bool = False, # The product the person actually purchased for a member_type or member_group
|
||||||
inc_user: bool = False,
|
inc_user: bool = False,
|
||||||
) -> Membership_Member_Base:
|
) -> Membership_Member_Base:
|
||||||
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
@@ -183,34 +184,98 @@ def get_membership_member_rec_list(
|
|||||||
else: return False
|
else: return False
|
||||||
data = {}
|
data = {}
|
||||||
data[f'{for_obj_type}_id'] = for_obj_id
|
data[f'{for_obj_type}_id'] = for_obj_id
|
||||||
# data['for_obj_type'] = for_obj_type
|
|
||||||
sql_obj_type_id = f'`tbl`.{for_obj_type}_id = :{for_obj_type}_id'
|
|
||||||
|
|
||||||
if enabled in ['enabled', 'disabled', 'all']:
|
allowed_forign_key_li = ['account', 'membership_type', 'person', 'user']
|
||||||
if enabled == 'enabled':
|
if for_obj_type in allowed_forign_key_li:
|
||||||
data['enable'] = True
|
log.info(f'Query using forign key: {for_obj_type} {for_obj_id}')
|
||||||
sql_enabled = f'AND `tbl`.enable = :enable'
|
sql_obj_type_id = f'`tbl`.{for_obj_type}_id = :{for_obj_type}_id'
|
||||||
elif enabled == 'disabled':
|
|
||||||
data['enable'] = False
|
|
||||||
sql_enabled = f'AND `tbl`.enable = :enable'
|
|
||||||
elif enabled == 'all':
|
|
||||||
sql_enabled = ''
|
|
||||||
|
|
||||||
if limit:
|
if enabled in ['enabled', 'disabled', 'all']:
|
||||||
data['limit'] = limit
|
if enabled == 'enabled':
|
||||||
sql_limit = f'LIMIT :limit'
|
data['enable'] = True
|
||||||
else:
|
sql_enabled = f'AND `tbl`.enable = :enable'
|
||||||
sql_limit = ''
|
elif enabled == 'disabled':
|
||||||
|
data['enable'] = False
|
||||||
|
sql_enabled = f'AND `tbl`.enable = :enable'
|
||||||
|
elif enabled == 'all':
|
||||||
|
sql_enabled = ''
|
||||||
|
|
||||||
sql = f"""
|
if limit:
|
||||||
SELECT `tbl`.id AS 'membership_member_id', `tbl`.id_random AS 'membership_member_id_random'
|
data['limit'] = limit
|
||||||
FROM `membership_member` AS `tbl`
|
sql_limit = f'LIMIT :limit'
|
||||||
WHERE
|
else:
|
||||||
{sql_obj_type_id}
|
sql_limit = ''
|
||||||
{sql_enabled}
|
|
||||||
ORDER BY `tbl`.created_on DESC, `tbl`.updated_on DESC
|
sql = f"""
|
||||||
{sql_limit};
|
SELECT `tbl`.id AS 'membership_member_id', `tbl`.id_random AS 'membership_member_id_random'
|
||||||
"""
|
FROM `membership_member` AS `tbl`
|
||||||
|
WHERE
|
||||||
|
{sql_obj_type_id}
|
||||||
|
{sql_enabled}
|
||||||
|
ORDER BY `tbl`.created_on DESC, `tbl`.updated_on DESC
|
||||||
|
{sql_limit};
|
||||||
|
"""
|
||||||
|
elif for_obj_type == 'unknown':
|
||||||
|
log.info(f'Query using joined table: {for_obj_type} {for_obj_id}')
|
||||||
|
# sql_obj_type_id = f'`membership_member`.{for_obj_type}_id = :{for_obj_type}_id'
|
||||||
|
|
||||||
|
# if enabled in ['enabled', 'disabled', 'all']:
|
||||||
|
# if enabled == 'enabled':
|
||||||
|
# data['enable'] = True
|
||||||
|
# sql_enabled = f'AND `membership_member`.enable = :enable'
|
||||||
|
# elif enabled == 'disabled':
|
||||||
|
# data['enable'] = False
|
||||||
|
# sql_enabled = f'AND `membership_member`.enable = :enable'
|
||||||
|
# elif enabled == 'all':
|
||||||
|
# sql_enabled = ''
|
||||||
|
|
||||||
|
# if limit:
|
||||||
|
# data['limit'] = limit
|
||||||
|
# sql_limit = f'LIMIT :limit'
|
||||||
|
# else:
|
||||||
|
# sql_limit = ''
|
||||||
|
|
||||||
|
# sql = f"""
|
||||||
|
# SELECT `membership_member`.id AS 'membership_type_id', `membership_member`.id_random AS 'membership_type_id_random'
|
||||||
|
# FROM `membership_member`
|
||||||
|
# INNER JOIN membership_type ON membership_member.membership_type_id = membership_type.id
|
||||||
|
# WHERE
|
||||||
|
# {sql_obj_type_id}
|
||||||
|
# {sql_enabled}
|
||||||
|
|
||||||
|
# ORDER BY `membership_member`.created_on DESC, `membership_member`.updated_on DESC
|
||||||
|
# {sql_limit};
|
||||||
|
# """
|
||||||
|
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
|
log.debug(sql)
|
||||||
|
|
||||||
|
# sql_obj_type_id = f'`tbl`.{for_obj_type}_id = :{for_obj_type}_id'
|
||||||
|
|
||||||
|
# if enabled in ['enabled', 'disabled', 'all']:
|
||||||
|
# if enabled == 'enabled':
|
||||||
|
# data['enable'] = True
|
||||||
|
# sql_enabled = f'AND `tbl`.enable = :enable'
|
||||||
|
# elif enabled == 'disabled':
|
||||||
|
# data['enable'] = False
|
||||||
|
# sql_enabled = f'AND `tbl`.enable = :enable'
|
||||||
|
# elif enabled == 'all':
|
||||||
|
# sql_enabled = ''
|
||||||
|
|
||||||
|
# if limit:
|
||||||
|
# data['limit'] = limit
|
||||||
|
# sql_limit = f'LIMIT :limit'
|
||||||
|
# else:
|
||||||
|
# sql_limit = ''
|
||||||
|
|
||||||
|
# sql = f"""
|
||||||
|
# SELECT `tbl`.id AS 'membership_member_id', `tbl`.id_random AS 'membership_member_id_random'
|
||||||
|
# FROM `membership_member` AS `tbl`
|
||||||
|
# WHERE
|
||||||
|
# {sql_obj_type_id}
|
||||||
|
# {sql_enabled}
|
||||||
|
# ORDER BY `tbl`.created_on DESC, `tbl`.updated_on DESC
|
||||||
|
# {sql_limit};
|
||||||
|
# """
|
||||||
|
|
||||||
if membership_member_rec_li_result := sql_select(data=data, sql=sql, as_list=True):
|
if membership_member_rec_li_result := sql_select(data=data, sql=sql, as_list=True):
|
||||||
membership_member_rec_li = membership_member_rec_li_result
|
membership_member_rec_li = membership_member_rec_li_result
|
||||||
|
|||||||
@@ -144,9 +144,10 @@ def get_membership_type_rec_list(
|
|||||||
else: return False
|
else: return False
|
||||||
data = {}
|
data = {}
|
||||||
data[f'{for_obj_type}_id'] = for_obj_id
|
data[f'{for_obj_type}_id'] = for_obj_id
|
||||||
# data['for_obj_type'] = for_obj_type
|
|
||||||
|
allowed_forign_key_li = ['account'] # 'lu_membership_type_id'? 'level'?
|
||||||
if for_obj_type == 'account':
|
if for_obj_type == 'account':
|
||||||
print('********************************* account **************************')
|
log.info(f'Query using forign key: {for_obj_type} {for_obj_id}')
|
||||||
sql_obj_type_id = f'`tbl`.{for_obj_type}_id = :{for_obj_type}_id'
|
sql_obj_type_id = f'`tbl`.{for_obj_type}_id = :{for_obj_type}_id'
|
||||||
|
|
||||||
if enabled in ['enabled', 'disabled', 'all']:
|
if enabled in ['enabled', 'disabled', 'all']:
|
||||||
@@ -175,7 +176,7 @@ def get_membership_type_rec_list(
|
|||||||
{sql_limit};
|
{sql_limit};
|
||||||
"""
|
"""
|
||||||
elif for_obj_type == 'membership_member':
|
elif for_obj_type == 'membership_member':
|
||||||
print('********************************* membership_member **************************')
|
log.info(f'Query using joined table: {for_obj_type} {for_obj_id}')
|
||||||
sql_obj_type_id = f'`membership_member`.{for_obj_type}_id = :{for_obj_type}_id'
|
sql_obj_type_id = f'`membership_member`.{for_obj_type}_id = :{for_obj_type}_id'
|
||||||
|
|
||||||
if enabled in ['enabled', 'disabled', 'all']:
|
if enabled in ['enabled', 'disabled', 'all']:
|
||||||
@@ -207,6 +208,7 @@ def get_membership_type_rec_list(
|
|||||||
"""
|
"""
|
||||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
log.debug(sql)
|
log.debug(sql)
|
||||||
|
|
||||||
if membership_type_rec_li_result := sql_select(data=data, sql=sql, as_list=True):
|
if membership_type_rec_li_result := sql_select(data=data, sql=sql, as_list=True):
|
||||||
membership_type_rec_li = membership_type_rec_li_result
|
membership_type_rec_li = membership_type_rec_li_result
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from typing import Dict, List, Optional, Set, Union
|
|||||||
from pydantic import BaseModel, EmailStr, Field, Json, PrivateAttr, ValidationError, validator
|
from pydantic import BaseModel, EmailStr, Field, Json, PrivateAttr, ValidationError, validator
|
||||||
|
|
||||||
from app.db_sql import redis_lookup_id_random
|
from app.db_sql import redis_lookup_id_random
|
||||||
from app.lib_general import log, logging
|
from app.lib_general import log, logging, status
|
||||||
|
|
||||||
from app.config import settings
|
from app.config import settings
|
||||||
|
|
||||||
@@ -90,11 +90,11 @@ def mk_resp(
|
|||||||
elif status_code == 503: response.status_code = status.HTTP_503_SERVICE_UNAVAILABLE
|
elif status_code == 503: response.status_code = status.HTTP_503_SERVICE_UNAVAILABLE
|
||||||
elif status_code == 504: response.status_code = status.HTTP_504_GATEWAY_TIMEOUT
|
elif status_code == 504: response.status_code = status.HTTP_504_GATEWAY_TIMEOUT
|
||||||
|
|
||||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||||
log.debug(type(resp_body['data']))
|
log.debug(type(resp_body['data']))
|
||||||
|
|
||||||
resp_body_obj = Resp_Body_Base(**resp_body)
|
resp_body_obj = Resp_Body_Base(**resp_body)
|
||||||
resp_body_obj.test_prop = 'my value'
|
# resp_body_obj.test_prop = 'my value'
|
||||||
log.debug(resp_body_obj)
|
log.debug(resp_body_obj)
|
||||||
resp_body_dict = resp_body_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
resp_body_dict = resp_body_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset)
|
||||||
log.debug(resp_body_dict)
|
log.debug(resp_body_dict)
|
||||||
|
|||||||
@@ -276,7 +276,7 @@ async def get_account_obj_new(
|
|||||||
|
|
||||||
|
|
||||||
# ### BEGIN ### API Account ### get_account_obj_membership_member_list() ###
|
# ### BEGIN ### API Account ### get_account_obj_membership_member_list() ###
|
||||||
# Working well as of 2021-06-23. Using as a template for other routes.
|
# Working well as of 2021-06-24. Using as a template for other routes.
|
||||||
@router.get('/{account_id}/membership_member_list', response_model=Resp_Body_Base)
|
@router.get('/{account_id}/membership_member_list', response_model=Resp_Body_Base)
|
||||||
async def get_account_obj_membership_member_list(
|
async def get_account_obj_membership_member_list(
|
||||||
account_id: str = Query(..., min_length=1, max_length=22),
|
account_id: str = Query(..., min_length=1, max_length=22),
|
||||||
@@ -342,7 +342,7 @@ async def get_account_obj_membership_member_list(
|
|||||||
inc_organization = inc_organization,
|
inc_organization = inc_organization,
|
||||||
inc_person = inc_person,
|
inc_person = inc_person,
|
||||||
inc_product = inc_product,
|
inc_product = inc_product,
|
||||||
inc_product_list = inc_product_list,
|
# inc_product_list = inc_product_list,
|
||||||
inc_user = inc_user,
|
inc_user = inc_user,
|
||||||
):
|
):
|
||||||
membership_member_result_list.append(load_membership_member_result)
|
membership_member_result_list.append(load_membership_member_result)
|
||||||
|
|||||||
Reference in New Issue
Block a user