Module: Elastic::AppSearch::Request
- Included in:
- Client
- Defined in:
- lib/elastic/app-search/request.rb
Instance Attribute Summary collapse
-
#last_request ⇒ Object
Returns the value of attribute last_request.
Instance Method Summary collapse
- #delete(path, params = {}) ⇒ Object
- #get(path, params = {}) ⇒ Object
- #patch(path, params = {}) ⇒ Object
- #post(path, params = {}) ⇒ Object
- #put(path, params = {}) ⇒ Object
-
#request(method, path, params = {}) ⇒ Object
Construct and send a request to the API.
Instance Attribute Details
#last_request ⇒ Object
Returns the value of attribute last_request.
14 15 16 |
# File 'lib/elastic/app-search/request.rb', line 14 def last_request @last_request end |
Instance Method Details
#delete(path, params = {}) ⇒ Object
32 33 34 |
# File 'lib/elastic/app-search/request.rb', line 32 def delete(path, params={}) request(:delete, path, params) end |
#get(path, params = {}) ⇒ Object
16 17 18 |
# File 'lib/elastic/app-search/request.rb', line 16 def get(path, params={}) request(:get, path, params) end |
#patch(path, params = {}) ⇒ Object
28 29 30 |
# File 'lib/elastic/app-search/request.rb', line 28 def patch(path, params={}) request(:patch, path, params) end |
#post(path, params = {}) ⇒ Object
20 21 22 |
# File 'lib/elastic/app-search/request.rb', line 20 def post(path, params={}) request(:post, path, params) end |
#put(path, params = {}) ⇒ Object
24 25 26 |
# File 'lib/elastic/app-search/request.rb', line 24 def put(path, params={}) request(:put, path, params) end |
#request(method, path, params = {}) ⇒ Object
Construct and send a request to the API.
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/elastic/app-search/request.rb', line 39 def request(method, path, params = {}) Timeout.timeout(overall_timeout) do uri = URI.parse("#{api_endpoint}#{path}") request = build_request(method, uri, params) http = Net::HTTP.new(uri.host, uri.port) http.open_timeout = open_timeout http.read_timeout = overall_timeout http.set_debug_output(STDERR) if debug? if uri.scheme == 'https' http.use_ssl = true # st_ssl_verify_none provides a means to disable SSL verification for debugging purposes. An example # is Charles, which uses a self-signed certificate in order to inspect https traffic. This will # not be part of this client's public API, this is more of a development enablement option http.verify_mode = ENV['st_ssl_verify_none'] == 'true' ? OpenSSL::SSL::VERIFY_NONE : OpenSSL::SSL::VERIFY_PEER http.ca_file = File.join(File.dirname(__FILE__), '../..', 'data', 'ca-bundle.crt') http.ssl_timeout = open_timeout end @last_request = request response = http.request(request) response_json = parse_response(response) case response when Net::HTTPSuccess return response_json when Net::HTTPBadRequest raise Elastic::AppSearch::BadRequest, response_json when Net:: raise Elastic::AppSearch::InvalidCredentials, response_json when Net::HTTPNotFound raise Elastic::AppSearch::NonExistentRecord, response_json when Net::HTTPForbidden raise Elastic::AppSearch::Forbidden, response_json when Net::HTTPRequestEntityTooLarge raise Elastic::AppSearch::RequestEntityTooLarge, response_json else raise Elastic::AppSearch::UnexpectedHTTPException.new(response, response_json) end end end |