Class: Algorithmia::Requester
- Inherits:
-
Object
- Object
- Algorithmia::Requester
- Includes:
- HTTParty
- Defined in:
- lib/algorithmia/requester.rb
Instance Method Summary collapse
- #delete(endpoint, query: {}) ⇒ Object
- #get(endpoint, query: {}, headers: {}) ⇒ Object
- #head(endpoint) ⇒ Object
-
#initialize(client) ⇒ Requester
constructor
A new instance of Requester.
- #post(endpoint, body, query: {}, headers: {}, timeout: 60) ⇒ Object
- #put(endpoint, body, query: {}, headers: {}) ⇒ Object
Constructor Details
#initialize(client) ⇒ Requester
Returns a new instance of Requester.
7 8 9 10 11 12 13 14 15 16 |
# File 'lib/algorithmia/requester.rb', line 7 def initialize(client) self.class.base_uri client.api_address @client = client @default_headers = { 'User-Agent' => 'Algorithmia Ruby Client' } unless @client.api_key.nil? @default_headers['Authorization'] = @client.api_key end end |
Instance Method Details
#delete(endpoint, query: {}) ⇒ Object
70 71 72 73 74 |
# File 'lib/algorithmia/requester.rb', line 70 def delete(endpoint, query: {}) response = self.class.delete(endpoint, query: query, headers: @default_headers) check_for_errors(response) response end |
#get(endpoint, query: {}, headers: {}) ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/algorithmia/requester.rb', line 18 def get(endpoint, query: {}, headers: {}) headers = merge_headers(headers) headers.delete('Content-Type') # No content, can break request parsing response = self.class.get(endpoint, query: query, headers: headers) check_for_errors(response) response end |
#head(endpoint) ⇒ Object
62 63 64 65 66 67 68 |
# File 'lib/algorithmia/requester.rb', line 62 def head(endpoint) headers = merge_headers({}) headers.delete('Content-Type') # No content, can break request parsing response = self.class.head(endpoint, headers: headers) check_for_errors(response) response end |
#post(endpoint, body, query: {}, headers: {}, timeout: 60) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/algorithmia/requester.rb', line 26 def post(endpoint, body, query: {}, headers: {}, timeout: 60) headers = merge_headers(headers) headers['Content-Type'] ||= case when body.kind_of?(String) && body.encoding == Encoding::ASCII_8BIT 'application/octet-stream' when body.kind_of?(String) 'text/plain' else body = body.to_json 'application/json' end response = self.class.post(endpoint, body: body, query: query, headers: headers, timeout: timeout) check_for_errors(response) response end |
#put(endpoint, body, query: {}, headers: {}) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/algorithmia/requester.rb', line 44 def put(endpoint, body, query: {}, headers: {}) headers = merge_headers(headers) headers['Content-Type'] ||= case when body.kind_of?(String) && body.encoding == Encoding::ASCII_8BIT 'application/octet-stream' when body.kind_of?(String) 'text/plain' else body = body.to_json 'application/json' end response = self.class.put(endpoint, body: body, query: query, headers: headers) check_for_errors(response) response end |