Module: CoverMyMeds::ApiRequest
- Included in:
- Client
- Defined in:
- lib/covermymeds_api/api_request.rb
Instance Method Summary collapse
- #api_uri(host, path, params) ⇒ Object
- #call_api(http_method, rest_resource) ⇒ Object
- #request(http_method, host, path, params = {}, auth_type = :basic, &block) ⇒ Object
Instance Method Details
#api_uri(host, path, params) ⇒ Object
39 40 41 42 43 44 |
# File 'lib/covermymeds_api/api_request.rb', line 39 def api_uri host, path, params URI.parse(host).tap do |uri| uri.path = path uri.query = params.to_param end end |
#call_api(http_method, rest_resource) ⇒ Object
32 33 34 35 36 37 |
# File 'lib/covermymeds_api/api_request.rb', line 32 def call_api http_method, rest_resource body = block_given? ? yield : {} rest_resource.send http_method, body rescue RestClient::Exception => e raise Error::HTTPError.new(e.http_code, e.http_body) end |
#request(http_method, host, path, params = {}, auth_type = :basic, &block) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/covermymeds_api/api_request.rb', line 11 def request(http_method, host, path, params={}, auth_type = :basic, &block) params = params.symbolize_keys headers = params.delete(:headers) || {} tail = case auth_type when :basic { user: @username, password: @password, headers: headers } when :bearer { headers: { "Authorization" => "Bearer #{@username}+#{params.delete(:token_id)}" }.merge(headers) } else {} end uri = api_uri(host, path, params) rest_resource = RestClient::Resource.new(uri.to_s, tail) response = call_api http_method, rest_resource, &block return nil if response.body.empty? return JSON.parse(response.body) end |