Work on header validation

This commit is contained in:
Scott Idem
2022-01-05 13:50:12 -05:00
parent 3cfc8a69dc
commit 9a51e75892
3 changed files with 50 additions and 29 deletions

View File

@@ -3,7 +3,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
from app.lib_general import log, logging, get_account_header
from app.config import settings
from app.db_sql import sql_insert, sql_update, sql_insert_or_update, sql_select, sql_delete, get_id_random, redis_lookup_id_random
@@ -99,7 +99,7 @@ async def v3_post_person_obj_new(
x_account_id: str = Header(...),
response: Response = Response,
):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if create_update_person_obj_result := create_update_person_obj_v4b(
@@ -439,9 +439,9 @@ async def lookup_email(
# ### BEGIN ### API Person ### email_create_url() ###
# Updated 2021-12-03
# @router.get('/person/email_create_url', response_model=Resp_Body_Base)
@router.get('/person/{person_id}/email_create_url', response_model=Resp_Body_Base)
async def email_create_url(
# @router.get('/person/{person_id}/email_create_url', response_model=Resp_Body_Base)
@router.get('/person/{person_id}/email_auth_key_url', response_model=Resp_Body_Base)
async def email_auth_key_url(
person_id: Optional[str] = Query(None, min_length=11, max_length=22),
root_url: Optional[str] = Query(None, min_length=10, max_length=100), # Absolute min = 7
x_account_id: Optional[str] = Header(..., ),
@@ -575,7 +575,7 @@ async def get_person_obj(
# Working well as of 2021-07-09. Using as a template for other routes.
@router.get('/account/{account_id}/person/list', response_model=Resp_Body_Base)
async def get_account_obj_person_list(
account_id: str = Query(..., min_length=1, max_length=22),
account_id: str = Query(..., min_length=11, max_length=22),
limit: int = 500, # For now this covers any included objects or object lists
enabled: str = 'enabled', # For now this covers any included objects or object lists
inc_address: bool = False,
@@ -590,12 +590,13 @@ async def get_account_obj_person_list(
# inc_product: bool = False, # The product the person actually purchased for a member_type or member_group
# inc_product_list: bool = False, # The list of products that give access to a member_type or member_group
inc_user: bool = False,
x_account_id: str = Header(...),
# x_account_id: str = Header(...),
by_alias: Optional[bool] = True,
exclude_unset: Optional[bool] = True,
response: Response = Response,
account: dict = Depends(get_account_header),
):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if account_id := redis_lookup_id_random(record_id_random=account_id, table_name='account'): pass