diff --git a/src/ui/zcl_abapgit_services_repo.clas.abap b/src/ui/zcl_abapgit_services_repo.clas.abap index 93f1f1a23..b912f8944 100644 --- a/src/ui/zcl_abapgit_services_repo.clas.abap +++ b/src/ui/zcl_abapgit_services_repo.clas.abap @@ -24,7 +24,9 @@ CLASS zcl_abapgit_services_repo DEFINITION zcx_abapgit_exception . CLASS-METHODS purge IMPORTING - !iv_key TYPE zif_abapgit_persistence=>ty_repo-key + !iv_key TYPE zif_abapgit_persistence=>ty_repo-key + RETURNING + VALUE(ri_log) TYPE REF TO zif_abapgit_log RAISING zcx_abapgit_exception . CLASS-METHODS new_offline @@ -91,7 +93,7 @@ ENDCLASS. -CLASS zcl_abapgit_services_repo IMPLEMENTATION. +CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION. METHOD check_package. @@ -310,7 +312,6 @@ CLASS zcl_abapgit_services_repo IMPLEMENTATION. DATA: lt_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt, lv_answer TYPE c LENGTH 1, lo_repo TYPE REF TO zcl_abapgit_repo, - li_log TYPE REF TO zif_abapgit_log, lv_package TYPE devclass, lv_question TYPE c LENGTH 100, ls_checks TYPE zif_abapgit_definitions=>ty_delete_checks, @@ -351,16 +352,16 @@ CLASS zcl_abapgit_services_repo IMPLEMENTATION. )->popup_transport_request( ls_checks-transport-type ). ENDIF. - zcl_abapgit_repo_srv=>get_instance( )->purge( io_repo = lo_repo - is_checks = ls_checks - ii_log = lo_repo->create_new_log( 'Uninstall Log' ) ). + ri_log = zcl_abapgit_repo_srv=>get_instance( )->purge( + io_repo = lo_repo + is_checks = ls_checks ). COMMIT WORK. - li_log = lo_repo->get_log( ). - IF li_log IS BOUND AND li_log->count( ) > 0. - zcl_abapgit_log_viewer=>show_log( ii_log = li_log - iv_header_text = li_log->get_title( ) ). + IF ri_log IS BOUND AND ri_log->count( ) > 0. + zcl_abapgit_log_viewer=>show_log( + ii_log = ri_log + iv_header_text = ri_log->get_title( ) ). RETURN. ENDIF. diff --git a/src/zcl_abapgit_repo_srv.clas.abap b/src/zcl_abapgit_repo_srv.clas.abap index cac94d57f..b008c0580 100644 --- a/src/zcl_abapgit_repo_srv.clas.abap +++ b/src/zcl_abapgit_repo_srv.clas.abap @@ -76,7 +76,7 @@ ENDCLASS. -CLASS zcl_abapgit_repo_srv IMPLEMENTATION. +CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. METHOD add. @@ -476,10 +476,14 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION. METHOD zif_abapgit_repo_srv~purge. -* todo, this should be a method on the repo instead +* uninstalls all objects, no UI or popups in this class + +* todo, this should be a method on the repo instead? DATA: lt_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt. + CREATE OBJECT ri_log TYPE zcl_abapgit_log. + ri_log->set_title( 'Uninstall Log' ). IF io_repo->get_local_settings( )-write_protected = abap_true. zcx_abapgit_exception=>raise( 'Cannot purge. Local code is write-protected by repo config' ). @@ -491,7 +495,7 @@ CLASS zcl_abapgit_repo_srv IMPLEMENTATION. zcl_abapgit_objects=>delete( it_tadir = lt_tadir is_checks = is_checks - ii_log = ii_log ). + ii_log = ri_log ). delete( io_repo ). diff --git a/src/zif_abapgit_repo_srv.intf.abap b/src/zif_abapgit_repo_srv.intf.abap index c4b56336c..ff99d5d51 100644 --- a/src/zif_abapgit_repo_srv.intf.abap +++ b/src/zif_abapgit_repo_srv.intf.abap @@ -1,8 +1,9 @@ INTERFACE zif_abapgit_repo_srv - PUBLIC. + PUBLIC . + TYPES: - ty_repo_list TYPE STANDARD TABLE OF REF TO zcl_abapgit_repo WITH DEFAULT KEY. + ty_repo_list TYPE STANDARD TABLE OF REF TO zcl_abapgit_repo WITH DEFAULT KEY . METHODS delete IMPORTING @@ -54,9 +55,10 @@ INTERFACE zif_abapgit_repo_srv zcx_abapgit_exception . METHODS purge IMPORTING - !io_repo TYPE REF TO zcl_abapgit_repo - !is_checks TYPE zif_abapgit_definitions=>ty_delete_checks - !ii_log TYPE REF TO zif_abapgit_log OPTIONAL + !io_repo TYPE REF TO zcl_abapgit_repo + !is_checks TYPE zif_abapgit_definitions=>ty_delete_checks + RETURNING + VALUE(ri_log) TYPE REF TO zif_abapgit_log RAISING zcx_abapgit_exception . METHODS validate_package