parse_uri

in src/zgoog_cl_content_repo_gcs.clas.abap [0:0]


  METHOD parse_uri.

    DATA: lo_scms_scan_obj  TYPE REF TO cl_scms_virus_scan_info.

    DATA: lv_uri            TYPE string,
          lv_script         TYPE string,
          lv_rest           TYPE string,
          lv_path           TYPE string,
          lv_dummy          TYPE string ##NEEDED,
          lv_extension      TYPE string,
          lv_ext1           TYPE string ##NEEDED,
          lv_ext2           TYPE string ##NEEDED,
          lv_ext3           TYPE string ##NEEDED,
          lv_scanperformed1 TYPE string,
          lv_index          TYPE i,
          lv_scanperformed  TYPE c LENGTH 1.

    DATA: ls_parameter TYPE ltyp_s_parameter,
          ls_param     TYPE ltyp_s_parameter.

    gv_mode = go_server->request->get_header_field( '~REQUEST_METHOD' ).

    lv_uri    = go_server->request->get_header_field( '~REQUEST_URI' ).
    lv_script = go_server->request->get_header_field( '~SCRIPT_NAME' ).

    CLEAR: gv_command,
           gt_parameters[].

    SPLIT lv_uri AT '?' INTO lv_path lv_rest.

    SPLIT lv_path AT lv_script INTO lv_dummy lv_extension.
    SPLIT lv_extension AT '/' INTO lv_dummy lv_ext1 lv_ext2 lv_ext3.

    IF lv_ext1 IS INITIAL.
      gv_mandt = sy-mandt.
    ELSE.
      gv_mandt = lv_ext1.
    ENDIF.

    ls_parameter-usage = c_parameter_unknown.

    SPLIT lv_rest AT '&' INTO gv_command lv_rest.
    WHILE lv_rest IS NOT INITIAL.
      SPLIT lv_rest AT '&' INTO ls_parameter-name lv_rest.
      SPLIT ls_parameter-name AT '='
            INTO ls_parameter-name ls_parameter-value.
      ls_parameter-name = url_hex_decode( iv_value = ls_parameter-name ).
      APPEND ls_parameter TO gt_parameters.
    ENDWHILE.

    READ TABLE gt_parameters WITH KEY name = 'contRep' INTO ls_parameter. "#EC CI_STDSEQ
    IF sy-subrc = 0.
      gv_contrep = url_hex_decode( iv_value = ls_parameter-value ).
      SELECT SINGLE crep_type FROM crep
        INTO gv_crep_type
        WHERE crep_id = gv_contrep.                       "#EC CI_SUBRC
    ENDIF.