From 6a9eeafa43dc4bf25ce77c78b49523e3b7c153c3 Mon Sep 17 00:00:00 2001 From: oblomov-dev <102328295+oblomov-dev@users.noreply.github.com> Date: Mon, 14 Oct 2024 10:03:09 +0200 Subject: [PATCH] fixes (#1503) --- src/01/00/03/z2ui5_cl_util.clas.abap | 137 ------------------ .../00/03/z2ui5_cl_util.clas.testclasses.abap | 105 -------------- src/01/00/03/z2ui5_t_02.tabl.xml | 125 ---------------- src/02/z2ui5_cl_http_handler.clas.abap | 16 +- 4 files changed, 13 insertions(+), 370 deletions(-) delete mode 100644 src/01/00/03/z2ui5_t_02.tabl.xml diff --git a/src/01/00/03/z2ui5_cl_util.clas.abap b/src/01/00/03/z2ui5_cl_util.clas.abap index 8620a463..391da6cc 100644 --- a/src/01/00/03/z2ui5_cl_util.clas.abap +++ b/src/01/00/03/z2ui5_cl_util.clas.abap @@ -426,40 +426,6 @@ CLASS z2ui5_cl_util DEFINITION CLASS-METHODS check_raise_srtti_installed. - CLASS-METHODS db_delete_by_handle - IMPORTING - uname TYPE clike OPTIONAL - handle TYPE clike OPTIONAL - handle2 TYPE clike OPTIONAL - handle3 TYPE clike OPTIONAL - check_commit TYPE abap_bool DEFAULT abap_true. - - CLASS-METHODS db_save - IMPORTING - uname TYPE clike OPTIONAL - handle TYPE clike OPTIONAL - handle2 TYPE clike OPTIONAL - handle3 TYPE clike OPTIONAL - data TYPE any - check_commit TYPE abap_bool DEFAULT abap_true - RETURNING - VALUE(result) TYPE string. - - CLASS-METHODS db_load_by_id - IMPORTING - id TYPE clike OPTIONAL - EXPORTING - VALUE(result) TYPE any. - - CLASS-METHODS db_load_by_handle - IMPORTING - uname TYPE clike OPTIONAL - handle TYPE clike OPTIONAL - handle2 TYPE clike OPTIONAL - handle3 TYPE clike OPTIONAL - EXPORTING - VALUE(result) TYPE any. - PROTECTED SECTION. PRIVATE SECTION. @@ -470,109 +436,6 @@ ENDCLASS. CLASS z2ui5_cl_util IMPLEMENTATION. - METHOD db_delete_by_handle. - - DELETE FROM z2ui5_t_02 - WHERE - uname = @uname - AND handle = @handle - AND handle2 = @handle2 - AND handle3 = @handle3. - - IF check_commit = abap_true. - COMMIT WORK AND WAIT. - ENDIF. - - ENDMETHOD. - - - METHOD db_load_by_handle. - - DATA lt_db TYPE STANDARD TABLE OF z2ui5_t_02 WITH EMPTY KEY. - - SELECT data - FROM z2ui5_t_02 - WHERE - uname = @uname - AND handle = @handle - AND handle2 = @handle2 - AND handle3 = @handle3 - INTO CORRESPONDING FIELDS OF TABLE @lt_db. - IF sy-subrc <> 0. - RAISE EXCEPTION TYPE z2ui5_cx_util_error - EXPORTING - val = `No entry for handle exists`. - ENDIF. - - DATA(ls_db) = lt_db[ 1 ]. - - xml_parse( - EXPORTING - xml = ls_db-data - IMPORTING - any = result ). - - ENDMETHOD. - - - METHOD db_load_by_id. - - DATA lt_db TYPE STANDARD TABLE OF z2ui5_t_02 WITH EMPTY KEY. - - SELECT data - FROM z2ui5_t_02 - WHERE id = @id - INTO CORRESPONDING FIELDS OF TABLE @lt_db. - ASSERT sy-subrc = 0. - - DATA(ls_db) = lt_db[ 1 ]. - - xml_parse( - EXPORTING - xml = ls_db-data - IMPORTING - any = result ). - - ENDMETHOD. - - - METHOD db_save. - - DATA lt_db TYPE STANDARD TABLE OF z2ui5_t_02 WITH EMPTY KEY. - SELECT id - FROM z2ui5_t_02 - WHERE - uname = @uname - AND handle = @handle - AND handle2 = @handle2 - AND handle3 = @handle3 - INTO CORRESPONDING FIELDS OF TABLE @lt_db ##SUBRC_OK. - - DATA(ls_db) = VALUE z2ui5_t_02( - uname = uname - handle = handle - handle2 = handle2 - handle3 = handle3 - data = xml_stringify( data ) ). - - TRY. - ls_db-id = lt_db[ 1 ]-id. - CATCH cx_root. - ls_db-id = uuid_get_c32( ). - ENDTRY. - - MODIFY z2ui5_t_02 FROM @ls_db. - ASSERT sy-subrc = 0. - - IF check_commit = abap_true. - COMMIT WORK AND WAIT. - ENDIF. - - result = ls_db-id. - - ENDMETHOD. - - METHOD boolean_abap_2_json. IF boolean_check_by_data( val ). diff --git a/src/01/00/03/z2ui5_cl_util.clas.testclasses.abap b/src/01/00/03/z2ui5_cl_util.clas.testclasses.abap index 73c3d1a1..16a0ca43 100644 --- a/src/01/00/03/z2ui5_cl_util.clas.testclasses.abap +++ b/src/01/00/03/z2ui5_cl_util.clas.testclasses.abap @@ -1,108 +1,3 @@ -CLASS ltcl_test DEFINITION FINAL FOR TESTING - DURATION SHORT - RISK LEVEL HARMLESS. - - PRIVATE SECTION. - METHODS test_db_handle FOR TESTING RAISING cx_static_check. - METHODS test_db_handle_read_id FOR TESTING RAISING cx_static_check. -ENDCLASS. - - -CLASS ltcl_test IMPLEMENTATION. - - METHOD test_db_handle. - - IF sy-sysid = 'ABC'. - RETURN. - ENDIF. - - TYPES: - BEGIN OF ty_row, - title TYPE string, - value TYPE string, - selected TYPE abap_bool, - END OF ty_row. - - DATA(ls_row) = VALUE ty_row( - title = `test` - value = `val` - selected = abap_true ). - DATA(ls_row_result) = VALUE ty_row( ). - - DATA(lv_id) = z2ui5_cl_util=>db_save( - uname = `name` - handle = `handle1` - handle2 = `handle2` - handle3 = `handle3` - data = ls_row ). - - z2ui5_cl_util=>db_load_by_id( - EXPORTING - id = lv_id - IMPORTING - result = ls_row_result ). - - cl_abap_unit_assert=>assert_equals( - act = ls_row_result - exp = ls_row ). - - CLEAR ls_row_result. - z2ui5_cl_util=>db_load_by_handle( - EXPORTING - uname = `name` - handle = `handle1` - handle2 = `handle2` - handle3 = `handle3` - IMPORTING - result = ls_row_result ). - - cl_abap_unit_assert=>assert_equals( - act = ls_row_result - exp = ls_row ). - - ENDMETHOD. - - METHOD test_db_handle_read_id. - - IF sy-sysid = 'ABC'. - RETURN. - ENDIF. - - TYPES: - BEGIN OF ty_row, - title TYPE string, - value TYPE string, - selected TYPE abap_bool, - END OF ty_row. - - DATA(ls_row) = VALUE ty_row( - title = `test` - value = `val` - selected = abap_true ). - - DATA(lv_id) = z2ui5_cl_util=>db_save( - uname = `name` - handle = `handle1` - handle2 = `handle2` - handle3 = `handle3` - data = ls_row ). - - cl_abap_unit_assert=>assert_not_initial( lv_id ). - - DATA(lv_id2) = z2ui5_cl_util=>db_save( - uname = `name` - handle = `handle1` - handle2 = `handle2` - handle3 = `handle3` - data = ls_row ). - - cl_abap_unit_assert=>assert_equals( - act = lv_id - exp = lv_id2 ). - - ENDMETHOD. - -ENDCLASS. CLASS ltcl_test_app DEFINITION FOR TESTING. diff --git a/src/01/00/03/z2ui5_t_02.tabl.xml b/src/01/00/03/z2ui5_t_02.tabl.xml deleted file mode 100644 index da9939c7..00000000 --- a/src/01/00/03/z2ui5_t_02.tabl.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - Z2UI5_T_02 - E - TRANSP - abap toolkit - data storage - E - A - 1 - - - Z2UI5_T_02 - A - 0 - APPL0 - N - - - - MANDT - X - 0 - C - 000006 - X - CHAR - 000003 - CHAR - - - ID - X - 0 - C - 000064 - X - CHAR - 000032 - CHAR - - - UNAME - 0 - C - 000064 - CHAR - 000032 - CHAR - - - HANDLE - 0 - C - 000064 - CHAR - 000032 - CHAR - - - HANDLE2 - 0 - C - 000064 - CHAR - 000032 - CHAR - - - HANDLE3 - 0 - C - 000064 - CHAR - 000032 - CHAR - - - HANDLE4 - 0 - C - 000064 - CHAR - 000032 - CHAR - - - HANDLE5 - 0 - C - 000064 - CHAR - 000032 - CHAR - - - DATA - 0 - g - 000008 - STRG - STRG - - - DATA2 - 0 - g - 000008 - STRG - STRG - - - DATA3 - 0 - g - 000008 - STRG - STRG - - - - - diff --git a/src/02/z2ui5_cl_http_handler.clas.abap b/src/02/z2ui5_cl_http_handler.clas.abap index 8961c251..020896da 100644 --- a/src/02/z2ui5_cl_http_handler.clas.abap +++ b/src/02/z2ui5_cl_http_handler.clas.abap @@ -13,7 +13,10 @@ CLASS z2ui5_cl_http_handler DEFINITION CLASS-METHODS factory IMPORTING - server TYPE REF TO object + server TYPE REF TO object OPTIONAL + req TYPE REF TO object OPTIONAL + res TYPE REF TO object OPTIONAL + PREFERRED PARAMETER server RETURNING VALUE(result) TYPE REF TO z2ui5_cl_http_handler. @@ -62,7 +65,7 @@ CLASS z2ui5_cl_http_handler DEFINITION METHODS get_index_html RETURNING VALUE(result) TYPE string - ##CALLED. + ##CALLED. PRIVATE SECTION. @@ -127,7 +130,14 @@ CLASS z2ui5_cl_http_handler IMPLEMENTATION. METHOD factory. result = NEW #( ). - result->mo_server = z2ui5_cl_abap_api_http=>factory( server ). + + IF server IS BOUND. + result->mo_server = z2ui5_cl_abap_api_http=>factory( server ). + ELSEIF req IS BOUND AND res IS BOUND. + result = factory_cloud( req = req res = res ). + ELSE. + ASSERT 1 = `EMPTY_HTTP_HANDLER_CALL_ERROR`. + ENDIF. ENDMETHOD.