From 53790c37709eeffbf80615007ef57c323c2a73b0 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Tue, 24 Nov 2020 07:58:22 +0100 Subject: [PATCH] log, purge() now returns the log (#4222) * log, purge() now returns the log For each action, the log should be returned, then it is up to the UI how or if to show or persist it in the session. First step of #2821 * li_log not needed anymore --- src/ui/zcl_abapgit_services_repo.clas.abap | 21 +++++++++++---------- src/zcl_abapgit_repo_srv.clas.abap | 10 +++++++--- src/zif_abapgit_repo_srv.intf.abap | 12 +++++++----- 3 files changed, 25 insertions(+), 18 deletions(-) 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