Class: Plivo::RestClient

Inherits:
Object
  • Object
show all
Defined in:
lib/plivo/rest_client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(auth_id = nil, auth_token = nil, proxy_options = nil, timeout = 5) ⇒ RestClient

Returns a new instance of RestClient.



23
24
25
26
27
28
29
30
# File 'lib/plivo/rest_client.rb', line 23

def initialize(auth_id = nil, auth_token = nil, proxy_options = nil, timeout=5)
  configure_credentials(auth_id, auth_token)
  configure_proxies(proxy_options)
  configure_timeout(timeout)
  configure_headers
  configure_connection
  configure_interfaces
end

Instance Attribute Details

#accountObject (readonly)

Resources



18
19
20
# File 'lib/plivo/rest_client.rb', line 18

def 
  @account
end

#addressesObject (readonly)

Returns the value of attribute addresses.



21
22
23
# File 'lib/plivo/rest_client.rb', line 21

def addresses
  @addresses
end

#applicationsObject (readonly)

Returns the value of attribute applications.



20
21
22
# File 'lib/plivo/rest_client.rb', line 20

def applications
  @applications
end

#auth_credentialsObject (readonly)

Base stuff



15
16
17
# File 'lib/plivo/rest_client.rb', line 15

def auth_credentials
  @auth_credentials
end

#callsObject (readonly)

Returns the value of attribute calls.



19
20
21
# File 'lib/plivo/rest_client.rb', line 19

def calls
  @calls
end

#conferencesObject (readonly)

Returns the value of attribute conferences.



19
20
21
# File 'lib/plivo/rest_client.rb', line 19

def conferences
  @conferences
end

#endpointsObject (readonly)

Returns the value of attribute endpoints.



20
21
22
# File 'lib/plivo/rest_client.rb', line 20

def endpoints
  @endpoints
end

#headersObject (readonly)

Base stuff



15
16
17
# File 'lib/plivo/rest_client.rb', line 15

def headers
  @headers
end

#identitiesObject (readonly)

Returns the value of attribute identities.



21
22
23
# File 'lib/plivo/rest_client.rb', line 21

def identities
  @identities
end

#messagesObject (readonly)

Resources



18
19
20
# File 'lib/plivo/rest_client.rb', line 18

def messages
  @messages
end

#numbersObject (readonly)

Returns the value of attribute numbers.



19
20
21
# File 'lib/plivo/rest_client.rb', line 19

def numbers
  @numbers
end

#phone_numbersObject (readonly)

Returns the value of attribute phone_numbers.



20
21
22
# File 'lib/plivo/rest_client.rb', line 20

def phone_numbers
  @phone_numbers
end

#pricingsObject (readonly)

Returns the value of attribute pricings.



19
20
21
# File 'lib/plivo/rest_client.rb', line 19

def pricings
  @pricings
end

#recordingsObject (readonly)

Resources



18
19
20
# File 'lib/plivo/rest_client.rb', line 18

def recordings
  @recordings
end

#subaccountsObject (readonly)

Resources



18
19
20
# File 'lib/plivo/rest_client.rb', line 18

def subaccounts
  @subaccounts
end

Instance Method Details

#auth_idObject



32
33
34
# File 'lib/plivo/rest_client.rb', line 32

def auth_id
  @auth_credentials[:auth_id]
end

#process_response(method, response) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/plivo/rest_client.rb', line 36

def process_response(method, response)
  handle_response_exceptions(response)
  if method == 'DELETE'
    if response[:status] != 204
      raise Exceptions::PlivoRESTError, "Resource at #{response[:url]} "\
      'couldn\'t be deleted'
    end
  elsif !([200, 201, 202].include? response[:status])
    raise Exceptions::PlivoRESTError, "Received #{response[:status]} for #{method}"
  end

  response[:body]
end

#send_request(resource_path, method = 'GET', data = {}, timeout = nil, use_multipart_conn = false) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/plivo/rest_client.rb', line 50

def send_request(resource_path, method = 'GET', data = {}, timeout = nil, use_multipart_conn = false)
  timeout ||= @timeout

  response = case method
             when 'GET' then send_get(resource_path, data, timeout)
             when 'POST' then send_post(resource_path, data, timeout, use_multipart_conn)
             when 'DELETE' then send_delete(resource_path, timeout)
             else raise_invalid_request("#{method} not supported by Plivo, yet")
             end

  process_response(method, response.to_hash)
end