send

in src/zadf/zcl_adf_service_blob.clas.abap [0:0]


  METHOD send.
    DATA : lo_response     TYPE REF TO if_rest_entity,
           lo_request      TYPE REF TO if_rest_entity,
           lv_sas_token    TYPE string,
           lv_msg          TYPE string,
           lcx_adf_service TYPE REF TO zcx_adf_service.
    IF go_rest_api IS BOUND.
      IF gv_sas_token IS INITIAL.
        TRY.
            get_sas_token( EXPORTING iv_baseaddress = gv_uri
                           RECEIVING rv_sas_token  = lv_sas_token ).
            gv_sas_token = lv_sas_token.
          CATCH zcx_adf_service INTO lcx_adf_service.
            lv_msg =  lcx_adf_service->get_text( ).
            MESSAGE lv_msg TYPE 'I'.
        ENDTRY.
        CASE gv_blob_type.
          WHEN gc_append_blob.
            CONCATENATE gv_sas_token gc_comp_appendblock INTO gv_sas_token.
            go_rest_api->zif_rest_framework~set_uri( gv_sas_token ).
          WHEN gc_block_blob.
            go_rest_api->zif_rest_framework~set_uri( gv_sas_token ).
        ENDCASE.
      ELSE.
        IF NOT gv_sas_token CS gc_comp_appendblock AND
           gv_blob_type EQ gc_append_blob.
          CONCATENATE gv_sas_token gc_comp_appendblock INTO gv_sas_token.
        ENDIF.
        go_rest_api->zif_rest_framework~set_uri( gv_sas_token ).
      ENDIF.
      CASE gv_blob_type.
        WHEN gc_block_blob.
          add_request_header( iv_name = 'x-ms-blob-type' iv_value = gc_block_blob ).
          add_request_header( iv_name = 'Content-Type' iv_value = 'text/plain' ).
        WHEN gc_append_blob.
          add_request_header( iv_name = 'x-ms-version' iv_value = '2016-05-31' ).
          add_request_header( iv_name = 'Content-Length' iv_value = '1048' ).
      ENDCASE.
      go_rest_api->zif_rest_framework~set_binary_body( request ).
**Rest API call to get response from Azure Destination
      lo_response = go_rest_api->zif_rest_framework~execute( io_entity = lo_request async = gv_asynchronous is_retry = gv_is_try ).
      ev_http_status = go_rest_api->get_status( ).
      IF lo_response IS BOUND.
        response = lo_response->get_string_data( ).
      ELSE.
        RAISE EXCEPTION TYPE zcx_adf_service
          EXPORTING
            textid       = zcx_adf_service=>restapi_response_not_found
            interface_id = gv_interface_id.
      ENDIF.
    ENDIF.