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
This commit is contained in:
Lars Hvam 2020-11-24 07:58:22 +01:00 committed by GitHub
parent 6bd3242ecf
commit 53790c3770
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 25 additions and 18 deletions

View File

@ -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.

View File

@ -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 ).

View File

@ -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