Guest User

Untitled

a guest
Jul 12th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.72 KB | None | 0 0
  1. DECLARE
  2. v_token VARCHAR2 (200);
  3. Otext_Auth_Username VARCHAR2 (30) := 'XXXXXXX';
  4. Otext_Auth_Password VARCHAR2 (30) := 'YYYYYYY';
  5. Otext_Auth_URL VARCHAR2 (200)
  6. := 'http://XXXXXXX/cs.exe/api/v1/auth?';
  7. Otext_Content_URL VARCHAR2 (200)
  8. := 'http://XXXXXXX/cs.exe/api/v1/nodes';
  9.  
  10.  
  11. PROCEDURE get_valid_auth_token
  12. AS
  13. FUNCTION get_token
  14. RETURN VARCHAR2
  15. AS
  16. v_request UTL_HTTP.REQ;
  17. v_response UTL_HTTP.RESP;
  18. v_response_text VARCHAR2 (2000);
  19. v_CONTENT VARCHAR2 (4000)
  20. := 'username='
  21. || Otext_Auth_Username
  22. || '&password='
  23. || Otext_Auth_Password;
  24. BEGIN
  25. v_request :=
  26. UTL_HTTP.BEGIN_REQUEST (Otext_Auth_URL, 'POST', ' HTTP/1.1');
  27.  
  28. UTL_HTTP.SET_HEADER (
  29. v_request
  30. , 'content-type'
  31. , 'application/x-www-form-urlencoded;charset=UTF-8');
  32. UTL_HTTP.SET_HEADER (v_request, 'cache-control', 'no-cache');
  33. UTL_HTTP.SET_HEADER (v_request
  34. , 'Content-Length'
  35. , LENGTH (v_CONTENT));
  36.  
  37.  
  38. UTL_HTTP.WRITE_TEXT (v_request, v_CONTENT);
  39.  
  40. v_response := UTL_HTTP.GET_RESPONSE (v_request);
  41.  
  42. UTL_HTTP.READ_LINE (v_response, v_response_text, TRUE);
  43.  
  44. UTL_HTTP.END_RESPONSE (v_response);
  45.  
  46. v_response_text := REPLACE (v_response_text, '{"ticket":"', '');
  47. v_response_text := REPLACE (v_response_text, '"}', '');
  48.  
  49. RETURN v_response_text;
  50. EXCEPTION
  51. WHEN UTL_HTTP.END_OF_BODY
  52. THEN
  53. UTL_HTTP.END_RESPONSE (v_response);
  54. RETURN v_response_text;
  55. END;
  56. BEGIN
  57. v_token := get_token;
  58.  
  59. WHILE INSTR (v_token, '/', 1) > 1
  60. OR INSTR (v_token, '', 1) > 1
  61. LOOP
  62. DBMS_OUTPUT.PUT_LINE ('Invalid Token:' || v_token);
  63. DBMS_OUTPUT.PUT_LINE (
  64. 'Token had invalid characters - fetch token again');
  65. v_token := get_token;
  66. END LOOP;
  67.  
  68. DBMS_OUTPUT.PUT_LINE ('Valid Token:' || v_token);
  69. END get_valid_auth_token;
  70.  
  71. PROCEDURE Create_folder
  72. AS
  73. v_request UTL_HTTP.REQ;
  74. v_response UTL_HTTP.RESP;
  75. v_response_text VARCHAR2 (2000);
  76. v_CONTENT VARCHAR2 (4000);
  77. BEGIN
  78. DBMS_OUTPUT.PUT_LINE ('**************************');
  79. DBMS_OUTPUT.PUT_LINE ('Otext_Content_URL: ' || Otext_Content_URL);
  80. v_CONTENT :=
  81. 'type='
  82. || 412 -- 0:Folder; 144 - File; 412 - Physical Item (Container); 424 - Physical Item (Box)
  83. || '&parent_id='
  84. || 3482206
  85. || '&name='
  86. || 'SJS_TEST_NODE';
  87.  
  88. DBMS_OUTPUT.PUT_LINE ('v_CONTENT: ' || v_CONTENT);
  89.  
  90. v_request :=
  91. UTL_HTTP.BEGIN_REQUEST (Otext_Content_URL, 'POST', ' HTTP/1.1');
  92.  
  93. UTL_HTTP.SET_HEADER (v_request, 'otcsticket', v_token);
  94. UTL_HTTP.SET_HEADER (v_request, 'cache-control', 'no-cache');
  95. UTL_HTTP.SET_HEADER (
  96. v_request
  97. , 'content-type'
  98. , 'application/x-www-form-urlencoded;charset=UTF-8');
  99. UTL_HTTP.SET_HEADER (v_request, 'Content-Length', LENGTH (v_CONTENT));
  100. --UTL_HTTP.SET_HEADER (v_request, 'type', 412);
  101. --UTL_HTTP.SET_HEADER (v_request, 'parent_id', 3482206);
  102. --UTL_HTTP.SET_HEADER (v_request, 'name', 'SJS_TEST_NODE');
  103.  
  104. UTL_HTTP.WRITE_TEXT (v_request, v_CONTENT);
  105.  
  106. v_response := UTL_HTTP.GET_RESPONSE (v_request);
  107.  
  108. IF v_response.status_code = UTL_HTTP.HTTP_OK
  109. THEN
  110. DBMS_OUTPUT.PUT_LINE ('Good:' || v_response.status_code);
  111. ELSE
  112. DBMS_OUTPUT.PUT_LINE ('Bad:' || v_response.status_code);
  113. END IF;
  114.  
  115. --UTL_HTTP.READ_LINE (v_response, v_response_text, TRUE);
  116.  
  117. LOOP
  118. UTL_HTTP.READ_LINE (v_response, v_response_text, TRUE);
  119. DBMS_OUTPUT.PUT_LINE ('-->' || v_response_text);
  120. END LOOP;
  121.  
  122. UTL_HTTP.END_RESPONSE (v_response);
  123.  
  124. DBMS_OUTPUT.PUT_LINE ('v_response_text:' || v_response_text);
  125. EXCEPTION
  126. WHEN UTL_HTTP.END_OF_BODY
  127. THEN
  128. UTL_HTTP.END_RESPONSE (v_response);
  129. WHEN OTHERS
  130. THEN
  131. DBMS_OUTPUT.PUT_LINE (
  132. '-->'
  133. || ' OTHER Error Msg : '
  134. || UTL_HTTP.GET_DETAILED_SQLCODE
  135. || UTL_HTTP.GET_DETAILED_SQLERRM);
  136. END Create_folder;
  137. BEGIN
  138. get_valid_auth_token;
  139. Create_folder;
  140. END;
  141. /
Add Comment
Please, Sign In to add comment