Working on membership and users

This commit is contained in:
Scott Idem
2021-06-25 11:15:58 -04:00
parent d85ab35812
commit ca43cc4dce
9 changed files with 270 additions and 142 deletions

View File

@@ -259,6 +259,7 @@ origins = [
'https://oneskyit.com', 'https://oneskyit.com',
'http://dev-idaa.localhost:5000', 'http://dev-idaa.localhost:5000',
'http://connect.home:5000', 'http://connect.home:5000',
'http://connect.localhost:5000',
] ]
app.add_middleware( app.add_middleware(

View File

@@ -13,9 +13,9 @@ from app.methods.order_methods import load_order_obj, get_order_rec_list
from app.methods.organization_methods import load_organization_obj, update_organization_obj from app.methods.organization_methods import load_organization_obj, update_organization_obj
from app.methods.person_methods import load_person_obj, update_person_obj from app.methods.person_methods import load_person_obj, update_person_obj
from app.methods.post_methods import get_post_rec_list, load_post_obj from app.methods.post_methods import get_post_rec_list, load_post_obj
from app.methods.user_role_methods import get_user_role_rec_list, load_user_role_obj
from app.models.user_models import User_Base, User_New_Base, User_Out_Base from app.models.user_models import User_Base, User_New_Base, User_Out_Base
from app.models.user_role_models import User_Role_Base
# ### BEGIN ### API User Methods ### create_user_obj() ### # ### BEGIN ### API User Methods ### create_user_obj() ###
@@ -99,7 +99,7 @@ def load_user_obj(
inc_post_comment_list: bool = False, inc_post_comment_list: bool = False,
inc_user_role_list: bool = False, inc_user_role_list: bool = False,
) -> User_Out_Base|bool: ) -> User_Out_Base|bool:
#log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL # log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
if user_id := redis_lookup_id_random(record_id_random=user_id, table_name='user'): pass if user_id := redis_lookup_id_random(record_id_random=user_id, table_name='user'): pass
@@ -108,7 +108,7 @@ def load_user_obj(
if user_rec := sql_select(table_name='v_user', record_id=user_id): pass if user_rec := sql_select(table_name='v_user', record_id=user_id): pass
else: return False else: return False
#log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL # log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(user_rec) log.debug(user_rec)
try: try:
@@ -155,8 +155,7 @@ def load_user_obj(
): ):
order_result_list = [] order_result_list = []
for order_rec in order_rec_list_result: for order_rec in order_rec_list_result:
order_result_list.append( if load_order_result := load_order_obj(
load_order_obj(
order_id = order_rec.get('order_id', None), order_id = order_rec.get('order_id', None),
limit = limit, limit = limit,
by_alias = by_alias, by_alias = by_alias,
@@ -167,8 +166,9 @@ def load_user_obj(
inc_order_line_list = inc_order_line_list, inc_order_line_list = inc_order_line_list,
inc_person = inc_person, inc_person = inc_person,
# inc_user = inc_user, # inc_user = inc_user,
) ):
) order_result_list.append(load_order_result)
else: order_result_list.append(None)
user_obj.order_list = order_result_list user_obj.order_list = order_result_list
else: user_obj.order_list = [] else: user_obj.order_list = []
@@ -216,8 +216,7 @@ def load_user_obj(
): ):
post_result_list = [] post_result_list = []
for post_rec in post_rec_list_result: for post_rec in post_rec_list_result:
post_result_list.append( if load_post_result := load_post_obj(
load_post_obj(
post_id = post_rec.get('post_id', None), post_id = post_rec.get('post_id', None),
limit = limit, limit = limit,
by_alias = by_alias, by_alias = by_alias,
@@ -227,20 +226,42 @@ def load_user_obj(
inc_post_comment_list = inc_post_comment_list, inc_post_comment_list = inc_post_comment_list,
inc_person = inc_person, inc_person = inc_person,
# inc_user = inc_user, # inc_user = inc_user,
) ):
) post_result_list.append(load_post_result)
else: post_result_list.append(None)
user_obj.post_list = post_result_list user_obj.post_list = post_result_list
else: user_obj.post_list = [] else: user_obj.post_list = []
# NOTE: Including user roles should probably be reviewed # Updated 2021-06-25
if inc_user_role_list: if inc_user_role_list:
if role_rec_li := sql_select(table_name='v_user_role_detail', field_name='user_id', field_value=user_id, as_list=True): log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
# user_rec['role_list'] = role_rec_li if user_role_rec_list_result := get_user_role_rec_list(
user_obj.role_list = role_rec_li for_obj_type = 'user',
else: for_obj_id = user_id,
# user_rec['role_list'] = None limit = limit,
user_obj.role_list = None enabled = enabled,
log.debug(user_rec) ):
user_role_result_list = []
log.debug(user_role_rec_list_result)
for user_role_rec in user_role_rec_list_result:
if load_user_role_result := load_user_role_obj(
user_role_id = user_role_rec.get('user_role_id', None),
by_alias = by_alias,
exclude_unset = exclude_unset,
model_as_dict = model_as_dict,
):
user_role_result_list.append(load_user_role_result)
else: user_role_result_list.append(None)
user_obj.user_role_list = user_role_result_list
else: user_obj.user_role_list = []
# if role_rec_li := sql_select(table_name='v_user_role_detail', field_name='user_id', field_value=user_id, as_list=True):
# # user_rec['user_role_list'] = role_rec_li
# user_obj.user_role_list = role_rec_li
# else:
# # user_rec['user_role_list'] = None
# user_obj.user_role_list = None
# log.debug(user_rec)
log.debug(user_obj) log.debug(user_obj)
if model_as_dict: if model_as_dict:

View File

@@ -0,0 +1,104 @@
from __future__ import annotations
import datetime
from typing import Dict, List, Optional, Set, Union
from pydantic import BaseModel, EmailStr, Field, PrivateAttr, ValidationError, validator
from app.db_sql import redis_lookup_id_random, sql_select
from app.lib_general import log, logging
from app.models.user_role_models import User_Role_Base
# ### BEGIN ### API User Role Methods ### load_user_role_obj() ###
# Updated 2021-06-25
def load_user_role_obj(
user_role_id: int|str, # NOTE: This is currently just an auto ID number, not a random string.
by_alias: bool = True,
exclude_unset: bool = True,
model_as_dict: bool = False,
) -> User_Role_Base|dict|bool:
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
# if user_role_id := redis_lookup_id_random(record_id_random=user_role_id, table_name='user_role'): pass
# else: return False
if user_role_rec := sql_select(table_name='v_user_role', record_id=user_role_id): pass
else: return False
#log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(user_role_rec)
try:
user_role_obj = User_Role_Base(**user_role_rec)
log.debug(user_role_obj)
except ValidationError as e:
log.error(e.json())
return False
if model_as_dict:
return user_role_obj.dict(by_alias=by_alias, exclude_unset=exclude_unset) # pylint: disable=no-member
else:
return user_role_obj
# ### END ### API User Role Methods ### load_user_role_obj() ###
# ### BEGIN ### API User Role Methods ### get_user_role_rec_list() ###
# Updated 2021-06-25
def get_user_role_rec_list(
for_obj_type: str,
for_obj_id: str,
limit: int = 1000,
enabled: str = 'enabled', # enabled, disabled, all
) -> list|bool:
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if for_obj_id := redis_lookup_id_random(record_id_random=for_obj_id, table_name='for_obj_type'): pass
else: return False
data = {}
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'
allowed_forign_key_li = ['user']
if for_obj_type in allowed_forign_key_li:
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'
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 'user_role_id'/*, `tbl`.id_random AS 'user_role_id_random'*/
FROM `user_role` AS `tbl`
WHERE
{sql_obj_type_id}
{sql_enabled}
ORDER BY `tbl`.created_on DESC, `tbl`.updated_on DESC
{sql_limit};
"""
else: return False
if user_role_rec_li_result := sql_select(data=data, sql=sql, as_list=True):
user_role_rec_li = user_role_rec_li_result
else:
user_role_rec_li = []
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(user_role_rec_li_result)
return user_role_rec_li
# ### END ### API User Role Methods ### get_user_role_rec_list() ###

View File

@@ -30,10 +30,13 @@ class User_New_Base(BaseModel):
) )
account_id_random: str account_id_random: str
account_id: Optional[int] account_id: Optional[int]
contact_id_random: Optional[str] contact_id_random: Optional[str]
contact_id: Optional[int] contact_id: Optional[int]
organization_id_random: Optional[str] organization_id_random: Optional[str]
organization_id: Optional[int] organization_id: Optional[int]
person_id_random: Optional[str] person_id_random: Optional[str]
person_id: Optional[int] person_id: Optional[int]
@@ -140,6 +143,7 @@ class User_Out_Base(BaseModel):
**base_fields['user_id_random'], **base_fields['user_id_random'],
alias = 'user_id_random', alias = 'user_id_random',
) )
account_id_random: Optional[str] account_id_random: Optional[str]
#account_id: Optional[int] #account_id: Optional[int]
@@ -198,7 +202,9 @@ class User_Out_Base(BaseModel):
# person: Optional[dict] # Person_Base() # Priority l2 # person: Optional[dict] # Person_Base() # Priority l2
person: Optional[Union[Person_Base, None]] person: Optional[Union[Person_Base, None]]
post_list: Optional[list] # Post_Base() # Priority l1 post_list: Optional[list] # Post_Base() # Priority l1
user_role_list: Optional[list] # User_Role_Base() user_role_list: Optional[list] = Field(
alias = 'role_list'
) # User_Role_Base()
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now) _processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
@@ -213,16 +219,13 @@ class User_Base(BaseModel):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
#if TYPE_CHECKING:
#from .person_models import Person_Base
id_random: Optional[str] = Field( id_random: Optional[str] = Field(
**base_fields['user_id_random'], **base_fields['user_id_random'],
alias = 'user_id_random', alias = 'user_id_random',
default_factory = lambda:secrets.token_urlsafe(default_num_bytes), default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
) )
id: Optional[int] = Field( id: Optional[int] = Field(
#alias = 'user_id' alias = 'user_id'
) )
account_id_random: Optional[str] account_id_random: Optional[str]
account_id: Optional[int] account_id: Optional[int]
@@ -283,7 +286,9 @@ class User_Base(BaseModel):
# person: Optional[dict] # Person_Base() # Priority l2 # person: Optional[dict] # Person_Base() # Priority l2
person: Optional[Union[Person_Base, None]] person: Optional[Union[Person_Base, None]]
post_list: Optional[list] # Post_Base() # Priority l1 post_list: Optional[list] # Post_Base() # Priority l1
user_role_list: Optional[list] # User_Role_Base() user_role_list: Optional[list] = Field(
alias = 'role_list'
) # User_Role_Base()
# role_list: Optional[list] = [] # User_Role_Base() # NOTE <- This is a duplicate of above! # role_list: Optional[list] = [] # User_Role_Base() # NOTE <- This is a duplicate of above!
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now) _processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
@@ -347,6 +352,3 @@ class User_Base(BaseModel):
underscore_attrs_are_private = True underscore_attrs_are_private = True
fields = base_fields fields = base_fields
# ### END ### API User Models ### User_Base() ### # ### END ### API User Models ### User_Base() ###
# User_Base.update_forward_refs()
# User_Out_Base.update_forward_refs()

View File

@@ -15,26 +15,34 @@ class User_Role_Base(BaseModel):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
id_random: Optional[str] = Field( # id_random: Optional[str] = Field(
**base_fields['user_role_id_random'], # **base_fields['user_role_id_random'],
alias = 'user_role_id_random', # alias = 'user_role_id_random',
default_factory = lambda:secrets.token_urlsafe(default_num_bytes), # default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
) # )
id: Optional[int] = Field( id: Optional[int] = Field(
#alias = 'user_role_id' alias = 'user_role_id'
) )
user_id_random: Optional[str] # NOTE: This needs to be reviewed. Current a user_role record does not have an id_random
user_id_random: Optional[str]
user_id: Optional[int] user_id: Optional[int]
#role_id_random: Optional[str]
role_id: Optional[int] # user_role_id_random: Optional[str]
# user_role_id: Optional[int] = Field(
# alias = 'role_id'
# )
for_type: Optional[str] for_type: Optional[str]
for_id_random: Optional[str] for_id_random: Optional[str]
for_id: Optional[int] for_id: Optional[int]
code: Optional[str]
name: Optional[str]
description: Optional[str]
enable: Optional[bool] enable: Optional[bool]
enable_from: Optional[datetime.datetime] = None enable_from: Optional[datetime.datetime]
enable_to: Optional[datetime.datetime] = None enable_to: Optional[datetime.datetime]
notes: Optional[str] notes: Optional[str]
created_on: Optional[datetime.datetime] = None created_on: Optional[datetime.datetime] = None
@@ -51,15 +59,15 @@ class User_Role_Base(BaseModel):
return values['id_random'] return values['id_random']
return None return None
@validator('id', always=True) # @validator('id', always=True)
def user_role_id_lookup(cls, v, values, **kwargs): # def user_role_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING) # log.setLevel(logging.WARNING)
log.debug(locals()) # log.debug(locals())
if values['id_random']: # if values['id_random']:
log.debug(values['id_random']) # log.debug(values['id_random'])
return redis_lookup_id_random(record_id_random=values['id_random'], table_name='user_role') # return redis_lookup_id_random(record_id_random=values['id_random'], table_name='user_role')
return None # return None
@validator('user_id', always=True) @validator('user_id', always=True)
def user_id_lookup(cls, v, values, **kwargs): def user_id_lookup(cls, v, values, **kwargs):

View File

@@ -4,11 +4,11 @@ from fastapi import APIRouter, Body, Depends, Header, HTTPException, Query, stat
from pydantic import BaseModel, EmailStr, Field from pydantic import BaseModel, EmailStr, Field
from typing import Dict, List, Optional, Set, Union from typing import Dict, List, Optional, Set, Union
from app.lib_general import * from app.lib_general import log, logging
from app.config import settings from app.config import settings
from app.db_sql import * from app.db_sql import sql_select, redis_lookup_id_random
from .api_crud import delete_obj_template, get_obj_template, get_obj_li_template, patch_obj_template, post_obj_template from app.routers.api_crud import delete_obj_template, get_obj_template, get_obj_li_template, patch_obj_template, post_obj_template
from app.models.response_models import * from app.models.response_models import *
#from app.models.lookup_models import Lookup_Base #from app.models.lookup_models import Lookup_Base
@@ -31,9 +31,7 @@ async def get_lookup_li(
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
print('HERE') allowed_lookup_tables = ['country', 'country_subdivision', 'event_session_type', 'file_purpose', 'membership_member_status', 'order_status', 'user_status']
allowed_lookup_tables = ['country', 'country_subdivision', 'event_session_type', 'file_purpose', 'membership_status', 'order_status', 'user_status']
if for_lookup_name in allowed_lookup_tables: if for_lookup_name in allowed_lookup_tables:
table_name = f'lu_{for_lookup_name}' table_name = f'lu_{for_lookup_name}'

View File

@@ -178,7 +178,6 @@ async def lookup_membership_group_obj(
return mk_resp(data=data) return mk_resp(data=data)
# ### BEGIN ### API Membership Group ### get_membership_group_obj() ### # ### BEGIN ### API Membership Group ### get_membership_group_obj() ###
# Working well as of 2021-06-21. Using as a template for other routes. # Working well as of 2021-06-21. Using as a template for other routes.
@router.get('/{membership_group_id}', response_model=Resp_Body_Base) @router.get('/{membership_group_id}', response_model=Resp_Body_Base)

View File

@@ -178,11 +178,10 @@ async def lookup_membership_type_obj(
return mk_resp(data=data) return mk_resp(data=data)
# ### BEGIN ### API Membership Type ### get_membership_type_obj() ### # ### BEGIN ### API Membership Type ### get_membership_type_obj() ###
# Working well as of 2021-06-21. Using as a template for other routes. # Working well as of 2021-06-21. Using as a template for other routes.
@router.get('/{membership_type_id}/v5', response_model=Resp_Body_Base) @router.get('/{membership_type_id}', response_model=Resp_Body_Base)
async def get_membership_type_obj_v5( async def get_membership_type_obj(
membership_type_id: str = Query(..., min_length=1, max_length=22), membership_type_id: str = Query(..., min_length=1, max_length=22),
enabled: str = 'enabled', # For now this covers any included objects or object lists enabled: str = 'enabled', # For now this covers any included objects or object lists
limit: int = 500, # For now this covers any included objects or object lists limit: int = 500, # For now this covers any included objects or object lists
@@ -235,24 +234,24 @@ async def get_membership_type_obj_v5(
# ### END ### API Membership ### get_membership_type_obj() ### # ### END ### API Membership ### get_membership_type_obj() ###
@router.get('/{obj_id}', response_model=Resp_Body_Base) # @router.get('/{obj_id}', response_model=Resp_Body_Base)
async def get_membership_type_obj_old( # async def get_membership_type_obj_old(
obj_id: str = Query(..., min_length=1, max_length=22), # obj_id: str = Query(..., min_length=1, max_length=22),
x_account_id: str = Header(...), # x_account_id: str = Header(...),
by_alias: Optional[bool] = True, # by_alias: Optional[bool] = True,
exclude_unset: Optional[bool] = True, # exclude_unset: Optional[bool] = True,
): # ):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL # log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) # log.debug(locals())
obj_type = 'membership_type' # obj_type = 'membership_type'
result = get_obj_template( # result = get_obj_template(
obj_type=obj_type, # obj_type=obj_type,
obj_id=obj_id, # obj_id=obj_id,
by_alias=True, # by_alias=True,
exclude_unset=True, # exclude_unset=True,
) # )
return result # return result
@router.delete('/{obj_id}', response_model=Resp_Body_Base) @router.delete('/{obj_id}', response_model=Resp_Body_Base)

View File

@@ -489,7 +489,7 @@ async def lookup_username(
account_id: Union[int,str], account_id: Union[int,str],
username: str = Query(..., min_length=2, max_length=50), username: str = Query(..., min_length=2, max_length=50),
x_account_id: str = Header(...), x_account_id: str = Header(...),
inc_roles: bool = False, inc_user_role_list: bool = False,
inc_contact: bool = False, inc_contact: bool = False,
inc_organization: bool = False, inc_organization: bool = False,
inc_person: bool = False, inc_person: bool = False,
@@ -531,12 +531,12 @@ async def lookup_username(
if isinstance(user_obj_result, dict): if isinstance(user_obj_result, dict):
user_id = user_obj_result.get('user_id', None) user_id = user_obj_result.get('user_id', None)
user_obj = load_user_obj( user_obj = load_user_obj(
user_id=user_id, user_id = user_id,
inc_roles=inc_roles, inc_contact = inc_contact,
inc_contact=inc_contact, inc_organization = inc_organization,
inc_organization=inc_organization, inc_person = inc_person,
inc_person=inc_person inc_user_role_list = inc_user_role_list,
).dict(by_alias=by_alias, exclude_unset=exclude_unset) ).dict(by_alias = by_alias, exclude_unset=exclude_unset)
data = user_obj data = user_obj
elif isinstance(user_obj_result, list): elif isinstance(user_obj_result, list):
user_obj_li = [] user_obj_li = []
@@ -544,11 +544,11 @@ async def lookup_username(
user_id = user_obj.get('user_id', None) user_id = user_obj.get('user_id', None)
user_obj_li.append( user_obj_li.append(
load_user_obj( load_user_obj(
user_id=user_id, user_id = user_id,
inc_roles=inc_roles, inc_contact = inc_contact,
inc_contact=inc_contact, inc_organization = inc_organization,
inc_organization=inc_organization, inc_person = inc_person,
inc_person=inc_person, inc_user_role_list = inc_user_role_list,
).dict(by_alias=by_alias, exclude_unset=exclude_unset) ).dict(by_alias=by_alias, exclude_unset=exclude_unset)
) )
data = user_obj_li data = user_obj_li
@@ -558,11 +558,10 @@ async def lookup_username(
return mk_resp(data=data) return mk_resp(data=data)
# ### BEGIN ### API User ### get_user_obj() ###
# ### BEGIN ### API User ### get_user_obj_v5() ###
# Working well as of 2021-06-11. Using as a template for other routes. # Working well as of 2021-06-11. Using as a template for other routes.
@router.get('/{user_id}/v5', response_model=Resp_Body_Base) @router.get('/{user_id}', response_model=Resp_Body_Base)
async def get_user_obj_v5( async def get_user_obj(
user_id: str = Query(..., min_length=1, max_length=22), user_id: str = Query(..., min_length=1, max_length=22),
limit: int = 500, # For now this covers any included objects or object lists 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 enabled: str = 'enabled', # For now this covers any included objects or object lists
@@ -596,65 +595,62 @@ async def get_user_obj_v5(
else: else:
return mk_resp(data=None, status_code=404) return mk_resp(data=None, status_code=404)
if user_dict := load_user_obj( if user_result := load_user_obj(
user_id = user_id, user_id = user_id,
limit = limit, limit = limit,
model_as_dict = True, # NOTE: returning model as a dict model_as_dict = True, # NOTE: returning model as a dict
enabled = enabled, enabled = enabled,
inc_address = inc_address, inc_address = inc_address,
# inc_archive_list = inc_archive_list, # inc_archive_list = inc_archive_list,
inc_contact = inc_contact, inc_contact = inc_contact,
inc_event_list = inc_event_list, inc_event_list = inc_event_list,
# inc_hosted_file_list = inc_hosted_file_list, # inc_hosted_file_list = inc_hosted_file_list,
inc_journal_list = inc_journal_list, inc_journal_list = inc_journal_list,
# inc_journal_entry_list = inc_journal_entry_list, # inc_journal_entry_list = inc_journal_entry_list,
inc_membership_member = inc_membership_member, inc_membership_member = inc_membership_member,
# inc_membership_list = inc_membership_list, # ??? # inc_membership_list = inc_membership_list, # ???
inc_order_line_list = inc_order_line_list, inc_order_line_list = inc_order_line_list,
inc_order_list = inc_order_list, inc_order_list = inc_order_list,
inc_order_cart_list = inc_order_cart_list, inc_order_cart_list = inc_order_cart_list,
inc_organization = inc_organization, inc_organization = inc_organization,
# inc_organization_list = inc_organization_list, # inc_organization_list = inc_organization_list,
inc_person = inc_person, inc_person = inc_person,
# inc_person_list = inc_person_list, # inc_person_list = inc_person_list,
inc_post_list = inc_post_list, inc_post_list = inc_post_list,
# inc_post_comment_list = inc_post_comment_list, # inc_post_comment_list = inc_post_comment_list,
inc_user_role_list = inc_user_role_list, inc_user_role_list = inc_user_role_list,
): ):
if isinstance(user_dict, dict): response_data = user_result
response_data = user_dict
else:
response_data = user_dict
else: else:
return mk_resp(data=False, status_code=400) # Bad Request return mk_resp(data=False, status_code=400) # Bad Request
return mk_resp(data=response_data) return mk_resp(data=response_data)
# ### END ### API User ### get_user_obj_v5() ### # ### END ### API User ### get_user_obj() ###
@router.get('/{user_id}', response_model=Resp_Body_Base) # @router.get('/{user_id}', response_model=Resp_Body_Base)
async def get_user_obj( # async def get_user_obj(
user_id: str = Query(..., min_length=1, max_length=22), # user_id: str = Query(..., min_length=1, max_length=22),
x_account_id: str = Header(...), # x_account_id: str = Header(...),
inc_roles: bool = False, # inc_roles: bool = False,
inc_contact: bool = False, # inc_contact: bool = False,
inc_organization: bool = False, # inc_organization: bool = False,
inc_person: bool = False, # inc_person: bool = False,
by_alias: bool = True, # by_alias: bool = True,
exclude_unset: bool = True, # exclude_unset: bool = True,
): # ):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL # log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) # log.debug(locals())
user_obj = load_user_obj( # user_obj = load_user_obj(
user_id=user_id, # user_id=user_id,
inc_roles=inc_roles, # inc_roles=inc_roles,
inc_contact=inc_contact, # inc_contact=inc_contact,
inc_organization=inc_organization, # inc_organization=inc_organization,
inc_person=inc_person # inc_person=inc_person
).dict(by_alias=by_alias, exclude_unset=exclude_unset) # ).dict(by_alias=by_alias, exclude_unset=exclude_unset)
data = user_obj # data = user_obj
return mk_resp(data=data) # return mk_resp(data=data)
@router.delete('/{obj_id}', response_model=Resp_Body_Base) @router.delete('/{obj_id}', response_model=Resp_Body_Base)