General clean up

This commit is contained in:
Scott Idem
2023-01-30 15:06:02 -05:00
parent 536c4c4732
commit db58d9267c
3 changed files with 103 additions and 25 deletions

View File

@@ -26,6 +26,74 @@ def get_token_header(x_token: str = Header(...)):
# ### END ### API Lib General ### async get_token_header() ###
# ### BEGIN ### API Lib General ### class Common_Route_Params ###
# Updated 2023-01-30
class Common_Route_Params_No_Account_ID:
def __init__(
self,
x_account_id: int = None,
x_account_id_random: str = None,
enabled: str = 'enabled',
limit: int = 10,
offset: int = 0,
by_alias: bool = True,
exclude_unset: bool = True,
response = None,
):
self.x_account_id = x_account_id
self.x_account_id_random = x_account_id_random
self.enabled = enabled
self.limit = limit
self.offset = offset
self.by_alias = by_alias
self.exclude_unset = exclude_unset
self.response = response
# log.debug(response)
# ### END ### API Lib General ### class Common_Route_Params ###
# ### BEGIN ### API Lib General ### common_route_params() ###
# Updated 2023-01-30
@logger_reset # This breaks things for some reason when the function is async. Do not use async def common_route_params()!
def common_route_params_no_account_id(
x_account_id: str = Header(None, min_length=11, max_length=22),
enabled: str = 'enabled', # all, enabled, disabled
limit: int = 100,
offset: int = 0,
by_alias: bool = True,
exclude_none: Optional[bool] = True,
exclude_unset: bool = True,
# NOTE: Uncommenting either exclude or include breaks the JSON body format. I do not know why? Should be: {} Becomes this: {"obj_name": {"data_name": "data_value"}} -STI 2022-01-05
# exclude: Optional[list] = [], # Leaving this and include commented out
# include: Optional[list] = [], # Leaving this and exclude commented out
response: Response = Response,
log_lvl: int = logging.WARNING, # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
) -> Common_Route_Params_No_Account_ID:
log.setLevel(log_lvl)
log.debug(locals())
log.info(f'Setting commons values: x_account_id, x_account_id_random, limit, offset, enabled, by_alias, exclude_unset, response')
x_account_id_random = x_account_id
if x_account_id := redis_lookup_id_random(table_name='account', record_id_random=x_account_id):
log.info(f'Found the x-account-id header with the value: {x_account_id}')
elif x_account_id is None:
log.warning(f'No x-account-id header value passed')
else:
log.warning(f'The x-account-id header was found, but the Account ID was not found or is not valid. Account ID: {x_account_id}')
raise HTTPException(status_code=403, detail='The x-account-id Account ID was not found.') # Forbidden
commons = Common_Route_Params_No_Account_ID( x_account_id=x_account_id, x_account_id_random=x_account_id_random, limit=limit, offset=offset, enabled=enabled, by_alias=by_alias, exclude_unset=exclude_unset, response=response )
log.debug(commons)
return commons
# ### END ### API Lib General ### async common_route_params() ###
# ### BEGIN ### API Lib General ### class Common_Route_Params ###
# Updated 2022-01-05
class Common_Route_Params:

View File

@@ -28,22 +28,30 @@ logging.config.dictConfig({
'class': 'logging.handlers.RotatingFileHandler',
'formatter': 'long',
'filename': settings.LOG_PATH['app'],
'maxBytes': 5120000, # 5120000 = 5 MB
'backupCount': 5
'maxBytes': 5242880, # 524,2880 = 5 MB
'backupCount': 10
},
'log_file_warning': {
'level': 'WARNING',
'class': 'logging.handlers.RotatingFileHandler',
'formatter': 'long',
'filename': settings.LOG_PATH['app_warning'],
'maxBytes': 512000, # 512000 = .512 MB
'backupCount': 5
},
'test_handler': {
'class': 'logging.StreamHandler',
'level': 'INFO',
'formatter': 'short',
}
# 'log_file_warning': {
# 'level': 'WARNING',
# 'class': 'logging.handlers.RotatingFileHandler',
# 'formatter': 'long',
# 'filename': settings.LOG_PATH['app_warning'],
# 'maxBytes': 512000, # 524,288 = 512KB
# 'backupCount': 5
# },
# 'test_handler': {
# 'class': 'logging.StreamHandler',
# 'level': 'INFO',
# 'formatter': 'short',
# },
# 'test_handler_all_rotate': {
# 'class': 'logging.handlers.RotatingFileHandler',
# 'level': 'NOTSET',
# 'formatter': 'short',
# 'filename': '/logs/test_rotate.log',
# 'maxBytes': 100000, # 5120000 = 5 MB
# 'backupCount': 2,
# }
},
'loggers': {
# 'uvicorn': {'handlers': ['default'], 'level': 'INFO'},
@@ -51,6 +59,7 @@ logging.config.dictConfig({
# 'uvicorn.error': {'level': 'INFO', 'handlers': ['default'], 'propagate': True},
# 'uvicorn.error': {'level': 'INFO', 'handlers': ['console'], 'propagate': True},
# 'uvicorn.access': {'handlers': ['access'], 'level': 'INFO', 'propagate': False},
# 'gunicorn': {'handlers': ['console'], 'level': 'INFO'},
},
'root': {
'handlers': ['log_file_all'], #, 'log_file_all', 'log_file_warning'],

View File

@@ -4,7 +4,7 @@ from fastapi import APIRouter, Body, Depends, Header, HTTPException, Query, Resp
from pydantic import BaseModel, EmailStr, Field
from typing import Dict, List, Optional, Set, Union
from app.lib_general import log, logging, common_route_params, Common_Route_Params
from app.lib_general import log, logging, common_route_params, Common_Route_Params, common_route_params_no_account_id, Common_Route_Params_No_Account_ID
from app.config import settings
from app.db_sql import sql_enable_part, sql_insert, sql_update, sql_insert_or_update, sql_limit_offset_part, sql_select, sql_delete, redis_lookup_id_random
@@ -23,8 +23,9 @@ async def get_aether_cfg_obj(
# aether_cfg_id: str = Query(..., min_length=1, max_length=22),
# commons: Common_Route_Params = Depends(common_route_params),
x_account_id: str = Header(None, min_length=11, max_length=22),
response: Response = Response,
commons: Common_Route_Params_No_Account_ID = Depends(common_route_params_no_account_id),
# x_account_id: str = Header(None, min_length=11, max_length=22),
# response: Response = Response,
):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
@@ -35,9 +36,9 @@ async def get_aether_cfg_obj(
as_list = False,
max_count = 1,
):
return mk_resp(data=sql_select_result)
return mk_resp(data=sql_select_result, response=commons.response)
else:
return mk_resp(data=None, status_code=404)
return mk_resp(data=None, status_code=404, response=commons.response)
@router.get('/aether/flask/cfg/{aether_flask_cfg_id}', response_model=Resp_Body_Base)
@@ -45,11 +46,11 @@ async def get_aether_flask_cfg_obj(
aether_flask_cfg_id: int,
# aether_flask_cfg_id: str = Query(..., min_length=1, max_length=22),
# NOTE: The x_account_id header value is not required.
# commons: Common_Route_Params = Depends(common_route_params),
x_account_id: str = Header(None, min_length=11, max_length=22),
response: Response = Response,
commons: Common_Route_Params_No_Account_ID = Depends(common_route_params_no_account_id),
):
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if sql_select_result := sql_select(
@@ -58,6 +59,6 @@ async def get_aether_flask_cfg_obj(
as_list = False,
max_count = 1,
):
return mk_resp(data=sql_select_result)
return mk_resp(data=sql_select_result, response=commons.response)
else:
return mk_resp(data=None, status_code=404)
return mk_resp(data=None, status_code=404, response=commons.response)