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