class ForteRuby::API::Base

Attributes

request_data[RW]

Public Class Methods

new(params = {}) click to toggle source
# File lib/forte_ruby/api/base.rb, line 14
def initialize(params = {})
  set_attributes(params)
  self.request_data ||= RequestData.new
end

Private Instance Methods

send_request(url, method, params = nil) { |response| ... } click to toggle source
# File lib/forte_ruby/api/base.rb, line 21
def send_request(url, method, params = nil)
  self.result = Result.new

  unless request_data.config
    result.error = 'Provide configs in forte_ruby.yml file'
    return result
  end

  params = params ? JSON.generate(params) : nil
  begin
    response = RestClient.send(method, url, *[params, request_data.headers].compact)
    result.successful!
    if block_given? 
      yield(response)
    else
      result.response = JSON.parse(response)
    end
  rescue RestClient::Exception => e
    result.response = JSON.parse(e.response)['response']['response_desc']
  end

  result
end
set_attributes(attributes) click to toggle source
# File lib/forte_ruby/api/base.rb, line 45
def set_attributes(attributes)
  attributes.each do |key, value|
    self.send("#{key}=", value) if self.respond_to?(key)
  end
end