General clean up

This commit is contained in:
Scott Idem
2021-06-24 12:26:35 -04:00
parent 6e0ceefa48
commit e11639bf24
7 changed files with 173 additions and 161 deletions

View File

@@ -1,6 +1,7 @@
gunicorn gunicorn
uvicorn uvicorn
fastapi[all] fastapi[all]
pydantic
SQLAlchemy SQLAlchemy
mysqlclient mysqlclient
redis redis

View File

@@ -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() ###

View File

@@ -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:

View File

@@ -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

View File

@@ -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:

View File

@@ -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)

View File

@@ -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)