Class: MemoriClient::HttpClient
- Inherits:
-
Object
- Object
- MemoriClient::HttpClient
- Defined in:
- lib/memori_client/http_client.rb
Instance Attribute Summary collapse
-
#request_id ⇒ Object
readonly
Returns the value of attribute request_id.
Instance Method Summary collapse
- #delete(url, headers: {}, payload: {}) ⇒ Object
- #get(url, headers: {}, basic_auth: nil) ⇒ Object
-
#initialize(request_id: nil) ⇒ HttpClient
constructor
A new instance of HttpClient.
- #patch(url, headers: {}, payload:) ⇒ Object
- #post(url, headers: {}, payload:) ⇒ Object
- #post_file(url, file:) ⇒ Object
Constructor Details
#initialize(request_id: nil) ⇒ HttpClient
Returns a new instance of HttpClient.
6 7 8 |
# File 'lib/memori_client/http_client.rb', line 6 def initialize(request_id: nil) @request_id = request_id || SecureRandom.uuid end |
Instance Attribute Details
#request_id ⇒ Object (readonly)
Returns the value of attribute request_id.
4 5 6 |
# File 'lib/memori_client/http_client.rb', line 4 def request_id @request_id end |
Instance Method Details
#delete(url, headers: {}, payload: {}) ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/memori_client/http_client.rb', line 61 def delete(url, headers: {}, payload: {}) url = URI(url) https = Net::HTTP.new(url.host, url.port) https.use_ssl = url.scheme == 'https' request = Net::HTTP::Delete.new(url) request["Content-Type"] = "application/json" unless headers.key?('Content-Type') headers.each { |k, v| request[k] = v } request.body = JSON.dump(payload) response = https.request(request) handle_response(response, request) end |
#get(url, headers: {}, basic_auth: nil) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/memori_client/http_client.rb', line 10 def get(url, headers: {}, basic_auth: nil) uri = URI.parse url request = Net::HTTP::Get.new(uri) headers.each { |k, v| request[k] = v } request["Content-Type"] ||= "application/json" unless headers.key?('Content-Type') request.basic_auth(*basic_auth) if !basic_auth.nil? = { use_ssl: uri.scheme == "https" } response = Net::HTTP.start(uri.hostname, uri.port, ) do |http| http.request(request) end handle_response(response, request) end |
#patch(url, headers: {}, payload:) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/memori_client/http_client.rb', line 25 def patch(url, headers: {}, payload:) url = URI(url) https = Net::HTTP.new(url.host, url.port) https.use_ssl = url.scheme == 'https' request = Net::HTTP::Patch.new(url) request["Content-Type"] = "application/json" unless headers.key?('Content-Type') headers.each { |k, v| request[k] = v } request.body = JSON.dump(payload) response = https.request(request) handle_response(response, request) end |
#post(url, headers: {}, payload:) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/memori_client/http_client.rb', line 37 def post(url, headers: {}, payload:) puts "post #{url}" url = URI(url) https = Net::HTTP.new(url.host, url.port) https.use_ssl = url.scheme == 'https' request = Net::HTTP::Post.new(url) request["Content-Type"] = "application/json" unless headers.key?('Content-Type') headers.each { |k, v| request[k] = v } request.body = JSON.dump(payload) response = https.request(request) handle_response(response, request) end |
#post_file(url, file:) ⇒ Object
50 51 52 53 54 55 56 57 58 59 |
# File 'lib/memori_client/http_client.rb', line 50 def post_file(url, file:) puts "post_file #{url}" url = URI(url) https = Net::HTTP.new(url.host, url.port) https.use_ssl = url.scheme == 'https' request = Net::HTTP::Post.new(url) request.set_form([['upload', file]], 'multipart/form-data') response = https.request(request) handle_response(response, request) end |