Sha256: 4807b5d1b461f945abf9a6ab51f73e0089a7bf8d4756262434e24c12c2ce5a8a
Contents?: true
Size: 1 KB
Versions: 2
Compression:
Stored size: 1 KB
Contents
require 'json' module MobilizeAmericaClient module Request API_DOMAIN = 'api.mobilize.us'.freeze API_BASE_PATH = '/v1'.freeze def get(path:, params: {}) request(method: :get, path:, params:) end def post(path:, body:) request(method: :post, path:, body:) end private def esc(untrusted) CGI.escape(untrusted.to_s) end def request(method:, path:, params: {}, body: {}) response = connection.send(method) do |req| req.path = "#{API_BASE_PATH}#{path}" req.params = params req.headers['Content-Type'] = 'application/json' unless api_key.nil? req.headers['Authorization'] = "Bearer #{api_key}" end req.body = ::JSON.generate(body) unless body.empty? end if response.status == 401 raise MobilizeAmericaClient::UnauthorizedError end if response.status == 404 raise MobilizeAmericaClient::NotFoundError end JSON.parse(response.body) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
mobilize-america-client-0.5.1 | lib/mobilize_america_client/request.rb |
mobilize-america-client-0.5.0 | lib/mobilize_america_client/request.rb |