Class: Hoth::Transport::Http
- Inherits:
-
Base
- Object
- Base
- Hoth::Transport::Http
show all
- Defined in:
- lib/hoth/transport/http.rb
Direct Known Subclasses
Https
Instance Attribute Summary
Attributes inherited from Base
#encoder
Instance Method Summary
collapse
Methods inherited from Base
#initialize
Instance Method Details
#call_remote_with(*params) ⇒ Object
6
7
8
9
10
11
12
|
# File 'lib/hoth/transport/http.rb', line 6
def call_remote_with(*params)
begin
handle_response post_payload(params)
rescue Exception => e
raise TransportError.wrap(e)
end
end
|
#handle_response(response) ⇒ Object
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/hoth/transport/http.rb', line 14
def handle_response(response)
case response
when Net::HTTPSuccess
Hoth::Logger.debug "response.body: #{response.body}"
encoder.decode(response.body)["result"]
when Net::HTTPServerError
begin
Hoth::Logger.debug "response.body: #{response.body}"
raise encoder.decode(response.body)["error"]
rescue JSON::ParserError => jpe
raise TransportError.wrap(jpe)
end
when Net::HTTPRedirection, Net::HTTPClientError, Net::HTTPInformation, Net::HTTPUnknownResponse
raise NotImplementedError, "code: #{response.code}, message: #{response.body}"
end
end
|
#post_payload(payload) ⇒ Object
31
32
33
34
35
36
37
38
|
# File 'lib/hoth/transport/http.rb', line 31
def post_payload(payload)
uri = URI.parse(self.endpoint.to_url)
return Net::HTTP.post_form(uri,
'name' => self.name.to_s,
'caller_uuid' => Hoth.client_uuid,
'params' => encoder.encode(payload)
)
end
|