Class: Mbsy::Base

Inherits:
Object
  • Object
show all
Includes:
HTTParty
Defined in:
lib/mbsy/resources/base.rb

Direct Known Subclasses

Ambassador, Balance, Commission, Company, Event, Group, Shortcode, Social

Class Method Summary collapse

Class Method Details

.api_url(method) ⇒ Object



20
21
22
# File 'lib/mbsy/resources/base.rb', line 20

def api_url(method)
  Mbsy.site_uri + element_name + '/' + method
end

.call(method, params = {}) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/mbsy/resources/base.rb', line 24

def call(method, params = {})
  response = JSON.parse(self.get(api_url(method), :query => params).body)['response']
  case response['code']
  when '200' # Nothing to do here...
  when '400'
    raise BadRequestError.new(response['errors']['error'])
  when '401'
    raise UnauthorizedError.new(response['errors']['error'])
  when '404'
    raise RecordNotFound.new(response['errors']['error'])
  when '500'
    raise ServerError.new(response['errors']['error'])
  else
    raise BadResponse.new(response: response)
  end

  response['data']
end

.element_nameObject



16
17
18
# File 'lib/mbsy/resources/base.rb', line 16

def element_name
  name.split(/::/).last.underscore
end