Work on inserts and updates for address, contact, organization, person, user

This commit is contained in:
2021-06-09 22:04:47 -04:00
parent 3e3466237a
commit 264fced5a6
4 changed files with 180 additions and 12 deletions

View File

@@ -7,7 +7,7 @@ from pydantic import BaseModel, EmailStr, Field, PrivateAttr, ValidationError, v
from app.db_sql import redis_lookup_id_random, sql_insert, sql_select, sql_update
from app.lib_general import log, logging
from app.methods.contact_methods import load_contact_obj
from app.methods.user_methods import load_user_obj
from app.methods.organization_methods import load_organization_obj
#from app.methods.person_methods import load_person_obj
@@ -70,7 +70,7 @@ def create_user_obj(user_obj_new:User_New_Base) -> int|bool:
# ### BEGIN ### API User Methods ### load_user_obj() ###
def load_user_obj(user_id:int|str, inc_roles:bool=False, inc_contact:bool=False, inc_organization:bool=False, inc_person:bool=False) -> User_Out_Base|bool:
def load_user_obj(user_id:int|str, inc_roles:bool=False, inc_user:bool=False, inc_organization:bool=False, inc_person:bool=False) -> User_Out_Base|bool:
#log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
@@ -100,16 +100,16 @@ def load_user_obj(user_id:int|str, inc_roles:bool=False, inc_contact:bool=False,
user_rec['role_list'] = None
user_obj.role_list = None
if inc_contact:
contact_id = user_rec.get('contact_id', None)
if contact_obj_result := load_contact_obj(contact_id=contact_id):
contact_obj = contact_obj_result
user_rec['contact'] = contact_obj
if inc_user:
user_id = user_rec.get('user_id', None)
if user_obj_result := load_user_obj(user_id=user_id):
user_obj = user_obj_result
user_rec['user'] = user_obj
log.debug(user_rec)
user_obj.contact = contact_obj
user_obj.user = user_obj
else:
user_rec['contact'] = None
user_obj.contact = None
user_rec['user'] = None
user_obj.user = None
if inc_organization:
organization_id = user_rec.get('organization_id', None)
@@ -135,3 +135,40 @@ def load_user_obj(user_id:int|str, inc_roles:bool=False, inc_contact:bool=False,
return user_obj
# ### END ### API User Methods ### load_user_obj() ###
# ### BEGIN ### API User Methods ### update_user_obj() ###
def update_user_obj(user_obj_update:User_Base):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if contact_obj_update := user_obj_update.contact:
log.debug(contact_obj_update)
if contact_obj_up_result := update_contact_obj(contact_obj_update):
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(contact_obj_up_result)
return True
else:
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(contact_obj_up_result)
return False
else:
if contact_obj_in_result := insert_contact_obj(contact_obj_insert):
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(contact_obj_in_result)c
return True # NOTE: This needs to return the new contact ID
else:
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(contact_obj_in_result)
return False
user_obj_update.pop('contact')
log.debug(user_obj_update)
if user_obj_up_result = update_user_obj(user_obj_update):
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(user_obj_up_result)
return True
else:
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(user_obj_up_result)
return False