Class: TransparenciaBrasil::Client
- Inherits:
-
Object
- Object
- TransparenciaBrasil::Client
- Defined in:
- lib/transparencia_brasil/client.rb
Direct Known Subclasses
Class Method Summary collapse
- .connection_builder(method, url, params) ⇒ Object
- .endpoint_url ⇒ Object
- .get_entity(klass, path, params = {}) ⇒ Object
- .objects_from_response(klass, response) ⇒ Object
- .request(method, path, params = {}, signature_params = params) ⇒ Object
- .token ⇒ Object
Class Method Details
.connection_builder(method, url, params) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/transparencia_brasil/client.rb', line 48 def connection_builder(method, url, params) request_setup = Proc.new { |config| config.verbose = ENV['DEBUG'] config.headers['App-Token'] = token config.ssl_verify_peer = false } connection = case method when :get url.query = params.to_query unless params.empty? Curl.http :GET, url, nil, nil, &request_setup else raise "No support method #{method}" end end |
.endpoint_url ⇒ Object
8 9 10 |
# File 'lib/transparencia_brasil/client.rb', line 8 def endpoint_url Addressable::URI.parse(TransparenciaBrasil.configuration.endpoint) end |
.get_entity(klass, path, params = {}) ⇒ Object
16 17 18 |
# File 'lib/transparencia_brasil/client.rb', line 16 def get_entity(klass, path, params = {}) objects_from_response(klass, request(:get, path, params)) end |
.objects_from_response(klass, response) ⇒ Object
20 21 22 23 24 25 26 27 |
# File 'lib/transparencia_brasil/client.rb', line 20 def objects_from_response(klass, response) result = JSON.parse(response.body_str, symbolize_names: true) if result.is_a?(Array) result.map { |body| klass.new body } else klass.new(result) end end |
.request(method, path, params = {}, signature_params = params) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/transparencia_brasil/client.rb', line 29 def request(method, path, params={}, signature_params=params) url = endpoint_url.join("/api/"+path) connection = connection_builder(method, url, params) #case connection.response_code #when 400; raise TransparenciaBrasil::Error::BadRequest, "" #when 401; raise TransparenciaBrasil::Error::Unauthorized, "" #when 404; raise TransparenciaBrasil::Error::Unauthorized, "" #when 413; raise TransparenciaBrasil::Error::Unauthorized, "" #when 422; raise TransparenciaBrasil::Error::Unauthorized, "" #when 429; raise TransparenciaBrasil::Error::Unauthorized, "" #when 500; raise TransparenciaBrasil::Error::Unauthorized, "" #end connection rescue Curl::Err::ConnectionFailedError raise TransparenciaBrasil::Error::ServerError, "" end |
.token ⇒ Object
12 13 14 |
# File 'lib/transparencia_brasil/client.rb', line 12 def token TransparenciaBrasil.configuration.token end |