Class: Cb::Utils::Api

Inherits:
Object
  • Object
show all
Includes:
HTTParty
Defined in:
lib/cb/utils/api.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeApi

Returns a new instance of Api.



10
11
12
13
14
15
16
# File 'lib/cb/utils/api.rb', line 10

def initialize
  self.class.debug_output $stderr if Cb.configuration.debug_api
  self.class.default_params :developerkey => Cb.configuration.dev_key,
                            :outputjson => Cb.configuration.use_json.to_s

  self.class.default_timeout Cb.configuration.time_out
end

Class Method Details

.criteria_to_hash(criteria) ⇒ Object



77
78
79
80
81
82
83
84
85
86
87
88
# File 'lib/cb/utils/api.rb', line 77

def self.criteria_to_hash(criteria)
  params = Hash.new
  if criteria.respond_to?(:instance_variables)
    criteria.instance_variables.each do |var|
      var_name = var.to_s
      var_name.slice!(0)
      var_name_hash_safe = camelize(var_name)
      params["#{var_name_hash_safe}"] = criteria.instance_variable_get(var)
    end
  end
  return params
end

.is_numeric?(obj) ⇒ Boolean

Returns:

  • (Boolean)


90
91
92
# File 'lib/cb/utils/api.rb', line 90

def self.is_numeric?(obj)
  true if Float(obj) rescue false
end

Instance Method Details

#append_api_responses(obj, resp) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/cb/utils/api.rb', line 48

def append_api_responses(obj, resp)
  if obj.respond_to?('cb_response')
    meta_class = obj.cb_response
  else
    meta_class = Cb::Utils::MetaValues.new()
  end

  resp.each do | api_key, api_value |
    meta_name = get_meta_name_for api_key

    unless meta_name.empty?
      if meta_name == 'errors' && api_value.is_a?(Hash)
        api_value = api_value.values
      elsif self.class.is_numeric?(api_value)
        api_value = api_value.to_i
      end

      meta_class.class.send(:attr_reader, meta_name)
      meta_class.instance_variable_set(:"@#{meta_name}", api_value)
    end
  end

  obj.class.send(:attr_reader, 'api_error')
  obj.instance_variable_set(:@api_error, @api_error)

  obj.class.send(:attr_reader, 'cb_response')
  obj.instance_variable_set(:@cb_response, meta_class)
end

#cb_get(*args, &block) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/cb/utils/api.rb', line 18

def cb_get(*args, &block)
  self.class.base_uri Cb.configuration.base_uri
  response = self.class.get(*args, &block)
  #validated_response = ResponseValidator.validate(response)
  #set_api_error(validated_response)

  #return validated_response
  return response
end

#cb_get_secure(*args, &block) ⇒ Object



38
39
40
41
42
43
44
45
46
# File 'lib/cb/utils/api.rb', line 38

def cb_get_secure(*args, &block)
  self.class.base_uri Cb.configuration.base_uri_secure
  response = self.class.get(*args, &block)
  #validated_response = ResponseValidator.validate(response)
  #set_api_error(validated_response)

  #return validated_response
  return response
end

#cb_post(*args, &block) ⇒ Object



28
29
30
31
32
33
34
35
36
# File 'lib/cb/utils/api.rb', line 28

def cb_post(*args, &block)
  self.class.base_uri Cb.configuration.base_uri_secure
  response = self.class.post(*args, &block)
  #validated_response = ResponseValidator.validate(response)
  #set_api_error(validated_response)

  #return validated_response
  return response
end