class TransparenciaBrasil::Client
Public Class Methods
connection_builder(method, url, params)
click to toggle source
# 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()
click to toggle source
# File lib/transparencia_brasil/client.rb, line 8 def endpoint_url Addressable::URI.parse(TransparenciaBrasil.configuration.endpoint) end
get_entity(klass, path, params = {})
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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()
click to toggle source
# File lib/transparencia_brasil/client.rb, line 12 def token TransparenciaBrasil.configuration.token end