From 3de7d580dca62770aa7ef3f1ca291e29bffe76d2 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Tue, 29 Nov 2022 14:43:35 -0500 Subject: [PATCH] Clean up of new CRUD PATCH endpoint and other updates --- app/routers/api_crud.py | 192 +++++++++++++++++++++------------------- 1 file changed, 102 insertions(+), 90 deletions(-) diff --git a/app/routers/api_crud.py b/app/routers/api_crud.py index 2942935..a851313 100644 --- a/app/routers/api_crud.py +++ b/app/routers/api_crud.py @@ -69,86 +69,86 @@ obj_type_li = {} #obj_type_li['api_key'] = {'table_name': 'api_key', 'base_name': Api_Key_Base} #obj_type_li['api_token'] = {'table_name': 'api_token', 'base_name': Api_Token_Base} -obj_type_li['account'] = {'table_name': 'account', 'base_name': Account_Base} -obj_type_li['account_cfg'] = {'table_name': 'v_account_cfg', 'base_name': Account_Cfg_Base} # NOTE check view name: *_detail? -obj_type_li['activity_log'] = {'table_name': 'activity_log', 'base_name': Activity_Log_Base} -obj_type_li['address'] = {'table_name': 'v_address', 'base_name': Address_Base} -obj_type_li['archive'] = {'table_name': 'v_archive', 'base_name': Archive_Base} -obj_type_li['archive_content'] = {'table_name': 'v_archive_content', 'base_name': Archive_Content_Base} -#obj_type_li['change_log'] = {'table_name': 'change_log', 'base_name': Change_Log_Base} -obj_type_li['contact'] = {'table_name': 'v_contact', 'base_name': Contact_Base} -obj_type_li['cont_edu_cert'] = {'table_name': 'v_cont_edu_cert', 'base_name': Cont_Edu_Cert_Base} -obj_type_li['cont_edu_cert_person'] = {'table_name': 'v_cont_edu_cert_person', 'base_name': Cont_Edu_Cert_Person_Base} -obj_type_li['event'] = {'table_name': 'v_event', 'base_name': Event_Base} -obj_type_li['event_badge'] = {'table_name': 'event_badge', 'base_name': Event_Badge_Base} -#obj_type_li['event_badge_log'] = {'table_name': 'event_badge_log', 'base_name': Event_Badge_Log_Base} -#obj_type_li['event_badge_template'] = {'table_name': 'event_badge_template', 'base_name': Event_Badge_Template_Base} -#obj_type_li['event_device'] = {'table_name': 'event_device', 'base_name': Event_Device_Base} -obj_type_li['event_exhibit'] = {'table_name': 'v_event_exhibit', 'base_name': Event_Exhibit_Base} # NOTE check view name: *_detail? -obj_type_li['event_exhibit_tracking'] = {'table_name': 'v_event_exhibit_tracking', 'base_name': Event_Exhibit_Tracking_Base} +obj_type_li['account'] = {'table_name': 'account', 'tbl_name_update': 'account', 'base_name': Account_Base} +obj_type_li['account_cfg'] = {'table_name': 'v_account_cfg', 'tbl_name_update': 'account_cfg', 'base_name': Account_Cfg_Base} # NOTE check view name: *_detail? +obj_type_li['activity_log'] = {'table_name': 'activity_log', 'tbl_name_update': 'activity_log', 'base_name': Activity_Log_Base} +obj_type_li['address'] = {'table_name': 'v_address', 'tbl_name_update': 'address', 'base_name': Address_Base} +obj_type_li['archive'] = {'table_name': 'v_archive', 'tbl_name_update': 'archive', 'base_name': Archive_Base} +obj_type_li['archive_content'] = {'table_name': 'v_archive_content', 'tbl_name_update': 'archive_content', 'base_name': Archive_Content_Base} +#obj_type_li['change_log'] = {'table_name': 'change_log', 'tbl_name_update': 'change_log', 'base_name': Change_Log_Base} +obj_type_li['contact'] = {'table_name': 'v_contact', 'tbl_name_update': 'contact', 'base_name': Contact_Base} +obj_type_li['cont_edu_cert'] = {'table_name': 'v_cont_edu_cert', 'tbl_name_update': 'cont_edu_cert', 'base_name': Cont_Edu_Cert_Base} +obj_type_li['cont_edu_cert_person'] = {'table_name': 'v_cont_edu_cert_person', 'tbl_name_update': 'cont_edu_cert_person', 'base_name': Cont_Edu_Cert_Person_Base} +obj_type_li['event'] = {'table_name': 'v_event', 'tbl_name_update': 'event', 'base_name': Event_Base} +obj_type_li['event_badge'] = {'table_name': 'event_badge', 'tbl_name_update': 'event_badge', 'base_name': Event_Badge_Base} +#obj_type_li['event_badge_log'] = {'table_name': 'event_badge_log', 'tbl_name_update': 'event_badge_log', 'base_name': Event_Badge_Log_Base} +#obj_type_li['event_badge_template'] = {'table_name': 'event_badge_template', 'tbl_name_update': 'event_badge_template', 'base_name': Event_Badge_Template_Base} +#obj_type_li['event_device'] = {'table_name': 'event_device', 'tbl_name_update': 'event_device', 'base_name': Event_Device_Base} +obj_type_li['event_exhibit'] = {'table_name': 'v_event_exhibit', 'tbl_name_update': 'event_exhibit', 'base_name': Event_Exhibit_Base} # NOTE check view name: *_detail? +obj_type_li['event_exhibit_tracking'] = {'table_name': 'v_event_exhibit_tracking', 'tbl_name_update': 'event_exhibit_tracking', 'base_name': Event_Exhibit_Tracking_Base} # NOTE: Using v_event_file_simple instead of v_event_file because of linking with for_type and for_id versus event_id, event_session_id, event_presenter_id, etc. 2022-08-19 # NOTE: This will not pull in linked to details like a session name, presentation time, or presenter name. -obj_type_li['event_file'] = {'table_name': 'v_event_file_simple', 'base_name': Event_File_Base} # Should this eventually be changed to event_hosted_file -obj_type_li['event_location'] = {'table_name': 'v_event_location', 'base_name': Event_Location_Base} -obj_type_li['event_person'] = {'table_name': 'v_event_person', 'base_name': Event_Person_Base} -obj_type_li['event_person_tracking'] = {'table_name': 'v_event_person_tracking', 'base_name': Event_Person_Tracking_Base} -obj_type_li['event_presentation'] = {'table_name': 'v_event_presentation', 'base_name': Event_Presentation_Base} -obj_type_li['event_presenter'] = {'table_name': 'v_event_presenter', 'base_name': Event_Presenter_Base} -obj_type_li['event_registration'] = {'table_name': 'v_event_registration', 'base_name': Event_Registration_Base} -obj_type_li['event_session'] = {'table_name': 'v_event_session', 'base_name': Event_Session_Base} -obj_type_li['event_track'] = {'table_name': 'v_event_track', 'base_name': Event_Track_Base} -obj_type_li['hosted_file'] = {'table_name': 'v_hosted_file', 'base_name': Hosted_File_Base} -#obj_type_li['hosted_file_link'] = {'table_name': 'hosted_file_link', 'base_name': Hosted_File_Link_Base} -obj_type_li['journal'] = {'table_name': 'v_journal', 'base_name': Journal_Base} -obj_type_li['journal_entry'] = {'table_name': 'v_journal_entry', 'base_name': Journal_Entry_Base} -#obj_type_li['log'] = {'table_name': 'log', 'base_name': Log_Base} #'v_log' -obj_type_li['log_client_viewing'] = {'table_name': 'log_client_viewing', 'base_name': Log_Client_Viewing_Base} -obj_type_li['membership_cfg'] = {'table_name': 'v_membership_cfg', 'base_name': Membership_Cfg_Base} -obj_type_li['membership_group'] = {'table_name': 'v_membership_group', 'base_name': Membership_Group_Base} -obj_type_li['membership_person_group'] = {'table_name': 'v_membership_person_group', 'base_name': Membership_Person_Group_Base} -obj_type_li['membership_person'] = {'table_name': 'v_membership_person', 'base_name': Membership_Person_Base} -obj_type_li['membership_person_profile'] = {'table_name': 'v_membership_person_profile', 'base_name': Membership_Person_Profile_Base} -obj_type_li['membership_type'] = {'table_name': 'v_membership_type', 'base_name': Membership_Type_Base} -obj_type_li['membership_person_type'] = {'table_name': 'v_membership_person_type', 'base_name': Membership_Person_Type_Base} -#obj_type_li['message'] = {'table_name': 'message', 'base_name': Message_Base} #'v_message' -obj_type_li['order'] = {'table_name': 'v_order', 'base_name': Order_Base} -obj_type_li['order_cart'] = {'table_name': 'v_order_cart', 'base_name': Order_Cart_Base} -obj_type_li['order_cart_line'] = {'table_name': 'v_order_cart_line', 'base_name': Order_Cart_Line_Base} -obj_type_li['order_line'] = {'table_name': 'v_order_line', 'base_name': Order_Line_Base} -#obj_type_li['order_transaction'] = {'table_name': 'order_transaction', 'base_name': Order_Transaction_Base} -obj_type_li['organization'] = {'table_name': 'v_organization', 'base_name': Organization_Base} -obj_type_li['page'] = {'table_name': 'page', 'base_name': Page_Base} -obj_type_li['person'] = {'table_name': 'v_person', 'base_name': Person_Base} -obj_type_li['post'] = {'table_name': 'v_post', 'base_name': Post_Base} # NOTE check view name: *_detail? -obj_type_li['post_comment'] = {'table_name': 'v_post_comment', 'base_name': Post_Comment_Base} # NOTE check view name: *_detail? -obj_type_li['product'] = {'table_name': 'v_product', 'base_name': Product_Base} -obj_type_li['site'] = {'table_name': 'site', 'base_name': Site_Base} -obj_type_li['site_domain'] = {'table_name': 'v_site_domain', 'base_name': Site_Domain_Base} # NOTE check view name: *_detail? -obj_type_li['user'] = {'table_name': 'v_user', 'base_name': User_Base} -obj_type_li['user_role'] = {'table_name': 'v_user_role', 'base_name': User_Role_Base} # NOTE check view name: *_detail? +obj_type_li['event_file'] = {'table_name': 'v_event_file_simple', 'tbl_name_update': 'event_file_simple', 'base_name': Event_File_Base} # Should this eventually be changed to event_hosted_file +obj_type_li['event_location'] = {'table_name': 'v_event_location', 'tbl_name_update': 'event_location', 'base_name': Event_Location_Base} +obj_type_li['event_person'] = {'table_name': 'v_event_person', 'tbl_name_update': 'event_person', 'base_name': Event_Person_Base} +obj_type_li['event_person_tracking'] = {'table_name': 'v_event_person_tracking', 'tbl_name_update': 'event_person_tracking', 'base_name': Event_Person_Tracking_Base} +obj_type_li['event_presentation'] = {'table_name': 'v_event_presentation', 'tbl_name_update': 'event_presentation', 'base_name': Event_Presentation_Base} +obj_type_li['event_presenter'] = {'table_name': 'v_event_presenter', 'tbl_name_update': 'event_presenter', 'base_name': Event_Presenter_Base} +obj_type_li['event_registration'] = {'table_name': 'v_event_registration', 'tbl_name_update': 'event_registration', 'base_name': Event_Registration_Base} +obj_type_li['event_session'] = {'table_name': 'v_event_session', 'tbl_name_update': 'event_session', 'base_name': Event_Session_Base} +obj_type_li['event_track'] = {'table_name': 'v_event_track', 'tbl_name_update': 'event_track', 'base_name': Event_Track_Base} +obj_type_li['hosted_file'] = {'table_name': 'v_hosted_file', 'tbl_name_update': 'hosted_file', 'base_name': Hosted_File_Base} +#obj_type_li['hosted_file_link'] = {'table_name': 'hosted_file_link', 'tbl_name_update': 'hosted_file_link', 'base_name': Hosted_File_Link_Base} +obj_type_li['journal'] = {'table_name': 'v_journal', 'tbl_name_update': 'journal', 'base_name': Journal_Base} +obj_type_li['journal_entry'] = {'table_name': 'v_journal_entry', 'tbl_name_update': 'journal_entry', 'base_name': Journal_Entry_Base} +#obj_type_li['log'] = {'table_name': 'log', 'tbl_name_update': 'log', 'base_name': Log_Base} #'v_log' +obj_type_li['log_client_viewing'] = {'table_name': 'log_client_viewing', 'tbl_name_update': 'log_client_viewing', 'base_name': Log_Client_Viewing_Base} +obj_type_li['membership_cfg'] = {'table_name': 'v_membership_cfg', 'tbl_name_update': 'membership_cfg', 'base_name': Membership_Cfg_Base} +obj_type_li['membership_group'] = {'table_name': 'v_membership_group', 'tbl_name_update': 'membership_group', 'base_name': Membership_Group_Base} +obj_type_li['membership_person_group'] = {'table_name': 'v_membership_person_group', 'tbl_name_update': 'membership_person_group', 'base_name': Membership_Person_Group_Base} +obj_type_li['membership_person'] = {'table_name': 'v_membership_person', 'tbl_name_update': 'membership_person', 'base_name': Membership_Person_Base} +obj_type_li['membership_person_profile'] = {'table_name': 'v_membership_person_profile', 'tbl_name_update': 'membership_person_profile', 'base_name': Membership_Person_Profile_Base} +obj_type_li['membership_type'] = {'table_name': 'v_membership_type', 'tbl_name_update': 'membership_type', 'base_name': Membership_Type_Base} +obj_type_li['membership_person_type'] = {'table_name': 'v_membership_person_type', 'tbl_name_update': 'membership_person_type', 'base_name': Membership_Person_Type_Base} +#obj_type_li['message'] = {'table_name': 'message', 'tbl_name_update': 'message', 'base_name': Message_Base} #'v_message' +obj_type_li['order'] = {'table_name': 'v_order', 'tbl_name_update': 'order', 'base_name': Order_Base} +obj_type_li['order_cart'] = {'table_name': 'v_order_cart', 'tbl_name_update': 'order_cart', 'base_name': Order_Cart_Base} +obj_type_li['order_cart_line'] = {'table_name': 'v_order_cart_line', 'tbl_name_update': 'order_cart_line', 'base_name': Order_Cart_Line_Base} +obj_type_li['order_line'] = {'table_name': 'v_order_line', 'tbl_name_update': 'order_line', 'base_name': Order_Line_Base} +#obj_type_li['order_transaction'] = {'table_name': 'order_transaction', 'tbl_name_update': 'order_transaction', 'base_name': Order_Transaction_Base} +obj_type_li['organization'] = {'table_name': 'v_organization', 'tbl_name_update': 'organization', 'base_name': Organization_Base} +obj_type_li['page'] = {'table_name': 'page', 'tbl_name_update': 'page', 'base_name': Page_Base} +obj_type_li['person'] = {'table_name': 'v_person', 'tbl_name_update': 'person', 'base_name': Person_Base} +obj_type_li['post'] = {'table_name': 'v_post', 'tbl_name_update': 'post', 'base_name': Post_Base} # NOTE check view name: *_detail? +obj_type_li['post_comment'] = {'table_name': 'v_post_comment', 'tbl_name_update': 'post_comment', 'base_name': Post_Comment_Base} # NOTE check view name: *_detail? +obj_type_li['product'] = {'table_name': 'v_product', 'tbl_name_update': 'product', 'base_name': Product_Base} +obj_type_li['site'] = {'table_name': 'site', 'tbl_name_update': 'site', 'base_name': Site_Base} +obj_type_li['site_domain'] = {'table_name': 'v_site_domain', 'tbl_name_update': 'site_domain', 'base_name': Site_Domain_Base} # NOTE check view name: *_detail? +obj_type_li['user'] = {'table_name': 'v_user', 'tbl_name_update': 'user', 'base_name': User_Base} +obj_type_li['user_role'] = {'table_name': 'v_user_role', 'tbl_name_update': 'user_role', 'base_name': User_Role_Base} # NOTE check view name: *_detail? -#obj_type_li['lu_country'] = {'table_name': 'lu_country', 'base_name': Lu_Country_Base} -#obj_type_li['lu_country_subdivision'] = {'table_name': 'lu_country_subdivision', 'base_name': Lu_Country_Subdivision_Base} -#obj_type_li['lu_education_degree'] = {'table_name': 'lu_education_degree', 'base_name': Lu_Education_Degree_Base} -#obj_type_li['lu_education_level'] = {'table_name': 'lu_education_level', 'base_name': Lu_Education_Level_Base} -#obj_type_li['lu_ethnicity'] = {'table_name': 'lu_ethnicity', 'base_name': Lu_Ethnicity_Base} -#obj_type_li['lu_file_purpose'] = {'table_name': 'lu_file_purpose', 'base_name': Lu_File_Purpose_Base} -#obj_type_li['lu_gender'] = {'table_name': 'lu_gender', 'base_name': Lu_Gender_Base} -#obj_type_li['lu_html_color'] = {'table_name': 'lu_html_color', 'base_name': Lu_Html_Color_Base} -#obj_type_li['lu_media_type'] = {'table_name': 'lu_media_type', 'base_name': Lu_Media_Type_Base} -#obj_type_li['lu_membership_status'] = {'table_name': 'lu_membership_status', 'base_name': Lu_Membership_Status_Base} -#obj_type_li['lu_membership_type'] = {'table_name': 'lu_membership_type', 'base_name': Lu_Membership_Type_Base} -#obj_type_li['lu_order_status'] = {'table_name': 'lu_order_status', 'base_name': Lu_Order_Status_Base} -#obj_type_li['lu_post_topic'] = {'table_name': 'lu_post_topic', 'base_name': Lu_Post_Topic_Base} -#obj_type_li['lu_product_type'] = {'table_name': 'lu_product_type', 'base_name': Lu_Product_Type_Base} -#obj_type_li['lu_pronoun'] = {'table_name': 'lu_pronoun', 'base_name': Lu_Pronoun_Base} -#obj_type_li['lu_race'] = {'table_name': 'lu_race', 'base_name': Lu_Race_Base} -#obj_type_li['lu_time_zone'] = {'table_name': 'v_lu_time_zone', 'base_name': Lu_Time_Zone_Base} -#obj_type_li['lu_user_role'] = {'table_name': 'lu_user_role', 'base_name': Lu_User_Role_Base} -#obj_type_li['lu_user_status'] = {'table_name': 'lu_user_status', 'base_name': Lu_User_Status_Base} +#obj_type_li['lu_country'] = {'table_name': 'lu_country', 'tbl_name_update': 'lu_country', 'base_name': Lu_Country_Base} +#obj_type_li['lu_country_subdivision'] = {'table_name': 'lu_country_subdivision', 'tbl_name_update': 'lu_country_subdivision', 'base_name': Lu_Country_Subdivision_Base} +#obj_type_li['lu_education_degree'] = {'table_name': 'lu_education_degree', 'tbl_name_update': 'lu_education_degree', 'base_name': Lu_Education_Degree_Base} +#obj_type_li['lu_education_level'] = {'table_name': 'lu_education_level', 'tbl_name_update': 'lu_education_level', 'base_name': Lu_Education_Level_Base} +#obj_type_li['lu_ethnicity'] = {'table_name': 'lu_ethnicity', 'tbl_name_update': 'lu_ethnicity', 'base_name': Lu_Ethnicity_Base} +#obj_type_li['lu_file_purpose'] = {'table_name': 'lu_file_purpose', 'tbl_name_update': 'lu_file_purpose', 'base_name': Lu_File_Purpose_Base} +#obj_type_li['lu_gender'] = {'table_name': 'lu_gender', 'tbl_name_update': 'lu_gender', 'base_name': Lu_Gender_Base} +#obj_type_li['lu_html_color'] = {'table_name': 'lu_html_color', 'tbl_name_update': 'lu_html_color', 'base_name': Lu_Html_Color_Base} +#obj_type_li['lu_media_type'] = {'table_name': 'lu_media_type', 'tbl_name_update': 'lu_media_type', 'base_name': Lu_Media_Type_Base} +#obj_type_li['lu_membership_status'] = {'table_name': 'lu_membership_status', 'tbl_name_update': 'lu_membership_status', 'base_name': Lu_Membership_Status_Base} +#obj_type_li['lu_membership_type'] = {'table_name': 'lu_membership_type', 'tbl_name_update': 'lu_membership_type', 'base_name': Lu_Membership_Type_Base} +#obj_type_li['lu_order_status'] = {'table_name': 'lu_order_status', 'tbl_name_update': 'lu_order_status', 'base_name': Lu_Order_Status_Base} +#obj_type_li['lu_post_topic'] = {'table_name': 'lu_post_topic', 'tbl_name_update': 'lu_post_topic', 'base_name': Lu_Post_Topic_Base} +#obj_type_li['lu_product_type'] = {'table_name': 'lu_product_type', 'tbl_name_update': 'lu_product_type', 'base_name': Lu_Product_Type_Base} +#obj_type_li['lu_pronoun'] = {'table_name': 'lu_pronoun', 'tbl_name_update': 'lu_pronoun', 'base_name': Lu_Pronoun_Base} +#obj_type_li['lu_race'] = {'table_name': 'lu_race', 'tbl_name_update': 'lu_race', 'base_name': Lu_Race_Base} +#obj_type_li['lu_time_zone'] = {'table_name': 'v_lu_time_zone', 'tbl_name_update': 'lu_time_zone', 'base_name': Lu_Time_Zone_Base} +#obj_type_li['lu_user_role'] = {'table_name': 'lu_user_role', 'tbl_name_update': 'lu_user_role', 'base_name': Lu_User_Role_Base} +#obj_type_li['lu_user_status'] = {'table_name': 'lu_user_status', 'tbl_name_update': 'lu_user_status', 'base_name': Lu_User_Status_Base} -#obj_type_li['stripe_customer'] = {'table_name': 'stripe_customer', 'base_name': Stripe_Customer_Base} -obj_type_li['stripe_log'] = {'table_name': 'stripe_log', 'base_name': Stripe_Log_Base_In} +#obj_type_li['stripe_customer'] = {'table_name': 'stripe_customer', 'tbl_name_update': 'stripe_customer', 'base_name': Stripe_Customer_Base} +obj_type_li['stripe_log'] = {'table_name': 'stripe_log', 'tbl_name_update': 'stripe_log', 'base_name': Stripe_Log_Base_In} # obj_type_li['c_idda_membership_person_profile'] = {'table_name': 'c_idda_membership_person_profile', 'base_name': C_Idda_membership_person_profile_Base} # obj_type_li['c_osit_demo_membership_person_profile'] = {'table_name': 'c_osit_demo_membership_person_profile', 'base_name': C_Osit_Demo_membership_person_profile_Base} @@ -327,6 +327,8 @@ async def get_obj( return mk_resp(data=False, status_code=404, response=response) +# ### BEGIN ### API CRUD ### patch_obj() ### +# Updated 2022-11-29 @router.patch('/{obj_type_l1}/{obj_id}') @router.patch('/{obj_type_l1}/{obj_type_l2}/{obj_id}') @router.patch('/{obj_type_l1}/{obj_type_l2}/{obj_type_l3}/{obj_id}') @@ -337,6 +339,7 @@ async def patch_obj( obj_type_l3: str = None, obj_id: str = Query(..., min_length=11, max_length=22), + run_safety_check: bool = True, # for_obj_type: Optional[str] = Query(None, max_length=50), # for_obj_id: Optional[str] = Query(None, max_length=22), @@ -357,7 +360,7 @@ async def patch_obj( - /order/cart/line = order_cart_line - /lu/some_lookup = lu_some_lookup """ - log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.debug(locals()) if crud.super_key == '789123': pass @@ -390,21 +393,21 @@ async def patch_obj( obj_name = f'{obj_type_l1}_{obj_type_l2}_{obj_type_l3}' if obj_name in obj_type_li: #table_name = obj_type_li[obj_name] - #table_name = obj_type_li[obj_name]['table_name'] + #table_name = obj_type_li[obj_name]['tbl_name_update'] pass else: return mk_resp(data=False, status_code=400, response=commons.response) elif obj_type_l1 and obj_type_l2: obj_name = f'{obj_type_l1}_{obj_type_l2}' if obj_name in obj_type_li: - #table_name = obj_type_li[obj_name]['table_name'] + #table_name = obj_type_li[obj_name]['tbl_name_update'] pass else: return mk_resp(data=False, status_code=400, response=commons.response) elif obj_type_l1: obj_name = f'{obj_type_l1}' if obj_name in obj_type_li: - #table_name = obj_type_li[obj_name]['table_name'] + #table_name = obj_type_li[obj_name]['tbl_name_update'] pass else: return mk_resp(data=False, status_code=400, response=commons.response) @@ -412,25 +415,34 @@ async def patch_obj( log.warning('We should not be here') return mk_resp(data=False, status_code=400, response=commons.response) - table_name = obj_type_li[obj_name]['table_name'] + table_name = obj_type_li[obj_name]['tbl_name_update'] # ### SECTION ### Secondary data validation - obj_id_random = obj_id # This is used later for the response data + # obj_id_random = obj_id # This might need to be used later for the response data if obj_id := redis_lookup_id_random(record_id_random=obj_id, table_name=table_name): pass else: return mk_resp(data=None, status_code=404, response=commons.response, status_message='The object ID was invalid or not found.') - # obj_id = 999999 - + # NOTE: Doing a quick sanity check based on the object models and then dump to a dict to get rid of invalid fields. The other option is to just use the crud.data_list raw. + crud_data = crud.data_list + if run_safety_check: + log.info('Running safety check by default') + base_name = obj_type_li[obj_name]['base_name'] + obj_model = base_name(**crud.data_list) # .dict(by_alias=commons.by_alias, exclude_unset=commons.exclude_unset) + log.debug(obj_model) + obj_dict = obj_model.dict(by_alias=commons.by_alias, exclude_unset=commons.exclude_unset) + log.debug(obj_dict) + crud_data = obj_dict + else: + log.warning('The default safety check was not run!') # NOTE: Add a check for the object ID... assuming it is a random ID string for now. - if sql_result := sql_update(data=crud.data_list, table_name=table_name, record_id=obj_id, log_lvl=logging.INFO): + if sql_result := sql_update(data=crud_data, table_name=table_name, record_id=obj_id, log_lvl=logging.INFO): log.info('The record was updated.') log.debug(sql_result) - base_name = obj_type_li[obj_name]['base_name'] - # resp_data = base_name(**sql_result).dict(by_alias=commons.by_alias, exclude_unset=commons.exclude_unset) - resp_data = { 'base_name': base_name, 'request_data': crud.data_list } - resp_data = 'Record updated!' + resp_data = {} + resp_data['table_name'] = table_name + resp_data['request_data'] = obj_dict return mk_resp(data=resp_data, response=commons.response) #, details=debug_data) elif sql_result == None: @@ -441,7 +453,7 @@ async def patch_obj( log.info('Something unexpected happened while trying to runt he SQL UPDATE. The fields or field values passed may not be valid for the table.') log.debug(sql_result) return mk_resp(data=False, status_code=400, status_message='Something unexpected happened while trying to runt he SQL UPDATE. The fields or field values passed may not be valid for the table.', response=commons.response) - +# ### END ### API CRUD ### patch_obj() ### @router.delete('/{obj_type_l1}/{obj_id}')