From 264fced5a60827ed162f6c4ab6b8a30adcf666d4 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Wed, 9 Jun 2021 22:04:47 -0400 Subject: [PATCH] Work on inserts and updates for address, contact, organization, person, user --- app/methods/address_methods.py | 17 +++++++ app/methods/contact_methods.py | 37 ++++++++++++++++ app/methods/person_methods.py | 81 +++++++++++++++++++++++++++++++++- app/methods/user_methods.py | 57 +++++++++++++++++++----- 4 files changed, 180 insertions(+), 12 deletions(-) diff --git a/app/methods/address_methods.py b/app/methods/address_methods.py index 68abc8b..30c82aa 100644 --- a/app/methods/address_methods.py +++ b/app/methods/address_methods.py @@ -56,3 +56,20 @@ def load_address_obj(address_id:int|str) -> Address_Base|bool: return address_obj # ### END ### API Address Methods ### load_address_obj() ### + + +# ### BEGIN ### API Address Methods ### update_address_obj() ### +def update_address_obj(address_obj_update:Address_Base): + log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(locals()) + + log.debug(address_obj_update) + if address_obj_up_result = update_address_obj(address_obj_update): + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(address_obj_up_result) + return True + else: + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(address_obj_up_result) + return False + diff --git a/app/methods/contact_methods.py b/app/methods/contact_methods.py index d6813e4..e46c9ba 100644 --- a/app/methods/contact_methods.py +++ b/app/methods/contact_methods.py @@ -85,3 +85,40 @@ def load_contact_obj(contact_id:int|str, inc_address:bool=False) -> Contact_Base return contact_obj # ### END ### API Contact Methods ### load_contact_obj() ### + + +# ### BEGIN ### API Contact Methods ### update_contact_obj() ### +def update_contact_obj(contact_obj_update:Contact_Base): + log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(locals()) + + if address_obj_update := contact_obj_update.address: + log.debug(address_obj_update) + if address_obj_up_result := update_address_obj(address_obj_update): + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(address_obj_up_result) + return True + else: + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(address_obj_up_result) + return False + else: + if address_obj_in_result := insert_address_obj(address_obj_insert): + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(address_obj_in_result)c + return True # NOTE: This needs to return the new address ID + else: + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(address_obj_in_result) + return False + + contact_obj_update.pop('address') + 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 diff --git a/app/methods/person_methods.py b/app/methods/person_methods.py index 1b84377..da9f1d6 100644 --- a/app/methods/person_methods.py +++ b/app/methods/person_methods.py @@ -8,7 +8,7 @@ from app.db_sql import redis_lookup_id_random, sql_insert, sql_select, sql_updat from app.lib_general import log, logging from app.methods.address_methods import load_address_obj -from app.methods.contact_methods import create_contact_obj, load_contact_obj +from app.methods.contact_methods import create_contact_obj, load_contact_obj, update_contact_obj from app.methods.organization_methods import load_organization_obj from app.methods.user_methods import load_user_obj @@ -130,4 +130,81 @@ def load_person_obj( # ### BEGIN ### API Person Methods ### update_person_obj() ### def update_person_obj(person_obj_update:Person_Base): log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL - log.debug(locals()) \ No newline at end of file + log.debug(locals()) + + if contact_obj_update := person_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) + 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 + + # if contact_obj_in_result := sql_insert(data=contact_obj_update, table_name='contact', rm_id_random=True, id_random_length=8): pass + # else: + # return False + + if organization_obj_update := person_obj_update.organization: + log.debug(organization_obj_update) + if organization_obj_up_result := update_organization_obj(organization_obj_update): + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(organization_obj_up_result) + return True + else: + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(organization_obj_up_result) + return False + else: + if organization_obj_in_result := insert_organization_obj(organization_obj_insert): + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(organization_obj_in_result) + return True # NOTE: This needs to return the new organization ID + else: + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(organization_obj_in_result) + return False + + if user_obj_update := person_obj_update.user: + 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 + else: + if user_obj_in_result := insert_user_obj(user_obj_insert): + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(user_obj_in_result) + return True # NOTE: This needs to return the new user ID + else: + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(user_obj_in_result) + return False + + person_obj_update.pop('contact') + person_obj_update.pop('organization') + person_obj_update.pop('user') + log.debug(person_obj_update) + if person_obj_up_result = update_person_obj(person_obj_update): + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(person_obj_up_result) + return True + else: + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(person_obj_up_result) + return False diff --git a/app/methods/user_methods.py b/app/methods/user_methods.py index eb45d67..a54b07b 100644 --- a/app/methods/user_methods.py +++ b/app/methods/user_methods.py @@ -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