show_payload

in src/zrest/zcl_rest_utility_class.clas.abap [0:0]


  METHOD show_payload.
*----------------------------------------------------------------------*
*                       Modification History                           *
*----------------------------------------------------------------------*
* Date      | USER ID  |  VSTF  | Transport  | Remarks                 *
*-----------|----------|--------|------------|-------------------------*
* 04|28|2016|V-DEVEER  |2163894 | DGDK903413 | Authorization Check
*----------------------------------------------------------------------*
    DATA : wa_payload TYPE zrest_mo_payload,
           it_payload TYPE STANDARD TABLE OF zrest_mo_payload.
    DATA : lv_content LIKE wa_payload-payload,
           output     TYPE xstring.
*   Check if user has the authority to call.

*   Begin of changes VSTF # 2163894 | DGDK903413
*    TRY.
*        check_authority( ).
*      CATCH zcx_http_client_failed INTO DATA(lv_textid).
*        DATA(lv_text2) = lv_textid->if_t100_message~t100key.
*        RAISE EXCEPTION TYPE zcx_http_client_failed EXPORTING textid = lv_text2.
*    ENDTRY.
*   End of changes VSTF # 2163894 | DGDK903413
*   Select the response data .
    SELECT * FROM zrest_mo_payload INTO TABLE it_payload WHERE messageid EQ message_id.
    IF sy-subrc EQ 0.
    ELSE.
      EXIT.
    ENDIF.

*   Based on the response indicator ..set the payload
    CLEAR lv_content.
    IF response EQ abap_true.
      LOOP AT it_payload INTO wa_payload.
        CONCATENATE wa_payload-response
                    lv_content
               INTO lv_content IN BYTE MODE.
      ENDLOOP.
      AUTHORITY-CHECK OBJECT 'ZREST_AUTH'
      ID 'ZBOOLEAN' FIELD 'X'.
      IF sy-subrc NE 0.
        IF check_obfuscation_needed( inetrface_in = wa_payload-interface_id ) EQ abap_true.
*          DATA(output) = obfuscate( input = lv_content ). V-jobpau
          output = obfuscate( input = lv_content ).
          lv_content = output.
        ENDIF.
      ENDIF.
    ELSE.
      LOOP AT it_payload INTO wa_payload.
        CONCATENATE wa_payload-payload
                    lv_content INTO
                    lv_content IN BYTE MODE.
      ENDLOOP.
      AUTHORITY-CHECK OBJECT 'ZREST_AUTH'
    ID 'ZBOOLEAN' FIELD 'X'.
      IF sy-subrc NE 0.
        IF check_obfuscation_needed( inetrface_in = wa_payload-interface_id ) EQ abap_true.
          output = obfuscate( input = lv_content ).
          lv_content = output.
        ENDIF.
      ENDIF.

*   This bit transforms a JSON string into a lovely hierarchical format

      DATA: l_exception_error TYPE REF TO cx_st_error.
      DATA: l_exception_rt_error TYPE REF TO cx_xslt_runtime_error.
      DATA: lv_content_cpy LIKE wa_payload-payload.

      lv_content_cpy = lv_content.

      TRY.
          CALL TRANSFORMATION sjson2html  SOURCE XML lv_content RESULT XML lv_content.
        CATCH: cx_st_error           INTO l_exception_error.
          lv_content = lv_content_cpy.
        CATCH: cx_xslt_runtime_error INTO l_exception_rt_error.
          lv_content = lv_content_cpy.
      ENDTRY.

    ENDIF.

    CALL METHOD cl_abap_browser=>show_html( html_xstring = lv_content ).