class Plivo::Base::Resource
Attributes
id[R]
Public Class Methods
new(client, options = nil)
click to toggle source
# File lib/plivo/base/resource.rb, line 7 def initialize(client, options = nil) configure_client(client) configure_options(options) if options configure_resource_uri @_is_voice_request = false end
Private Instance Methods
configure_client(client)
click to toggle source
# File lib/plivo/base/resource.rb, line 16 def configure_client(client) valid_param?(:client, client, [RestClient, Phlo], true) @_client = client end
configure_options(options)
click to toggle source
# File lib/plivo/base/resource.rb, line 21 def configure_options(options) valid_param?(:options, options, Hash, false) @id = options[:resource_id] if options.key?(:resource_id) parse_and_set(options[:resource_json]) if options.key?(:resource_json) end
configure_resource_uri()
click to toggle source
# File lib/plivo/base/resource.rb, line 27 def configure_resource_uri to_join = @id ? [@_client.auth_id, @_name, @id] : [@_client.auth_id, @_name] to_join = ['', 'v1', 'Account'] << to_join if @_name == 'Account' @id = @_client.auth_id to_join = ['', 'v1', 'Account', @id] end to_join << '' @_resource_uri = to_join.join('/') end
parse_and_set(resource_json)
click to toggle source
# File lib/plivo/base/resource.rb, line 40 def parse_and_set(resource_json) return unless resource_json valid_param?(:resource_json, resource_json, Hash, true) resource_json.each do |k, v| instance_variable_set("@#{k}", v) self.class.send(:attr_reader, k) end return unless @_identifier_string && (resource_json.key? @_identifier_string) @id = resource_json[@_identifier_string] end
perform_action(action = nil, method = 'GET', params = nil, parse = false)
click to toggle source
# File lib/plivo/base/resource.rb, line 67 def perform_action(action = nil, method = 'GET', params = nil, parse = false) resource_path = action ? @_resource_uri + action + '/' : @_resource_uri response = @_client.send_request(resource_path, method, params,nil,false,is_voice_request: @_is_voice_request) parse ? parse_and_set(response) : self method == 'POST' ? parse_and_set(params) : self self end
perform_action_apiresponse(action = nil, method = 'GET', params = nil, parse = false)
click to toggle source
# File lib/plivo/base/resource.rb, line 83 def perform_action_apiresponse(action = nil, method = 'GET', params = nil, parse = false) resource_path = action ? @_resource_uri + action + '/' : @_resource_uri response = @_client.send_request(resource_path, method, params,nil,false,is_voice_request: @_is_voice_request) parse ? parse_and_set(response) : self method == 'POST' ? parse_and_set(params) : self method == 'DELETE' ? parse_and_set(params) : self return response end
perform_custom_action_apiresponse(action = nil, method = 'GET', params = nil, parse = false)
click to toggle source
# File lib/plivo/base/resource.rb, line 92 def perform_custom_action_apiresponse(action = nil, method = 'GET', params = nil, parse = false) resource_path = action ? '/v1/Account/' + @_client.auth_id + '/'+ action + '/' : @_resource_uri response = @_client.send_request(resource_path, method, params,nil,false,is_voice_request: @_is_voice_request) parse ? parse_and_set(response) : self method == 'POST' ? parse_and_set(params) : self method == 'DELETE' ? parse_and_set(params) : self return response end
perform_custome_action(action = nil, method = 'GET', params = nil, parse = false)
click to toggle source
# File lib/plivo/base/resource.rb, line 75 def perform_custome_action(action = nil, method = 'GET', params = nil, parse = false) resource_path = action ? @_resource_uri + action + '/' : @_resource_uri response = @_client.send_request(resource_path, method, params,nil,false,is_voice_request: @_is_voice_request) parse ? parse_and_set(response) : self method == 'POST' ? parse_and_set(params) : self self end
perform_delete(params=nil)
click to toggle source
# File lib/plivo/base/resource.rb, line 101 def perform_delete(params=nil) unless @id raise_invalid_request("Cannot delete a #{@_name} resource "\ 'without an identifier') end Response.new(@_client.send_request(@_resource_uri, 'DELETE', params, nil, false, is_voice_request: @_is_voice_request), @_identifier_string) end
perform_run(params)
click to toggle source
# File lib/plivo/base/resource.rb, line 111 def perform_run(params) response_json = @_client.send_request(@_resource_uri, 'POST', params, nil,false,is_voice_request: @_is_voice_request) parse_and_set(response_json) Response.new(response_json, @_identifier_string) end
perform_update(params, use_multipart_conn = false)
click to toggle source
# File lib/plivo/base/resource.rb, line 54 def perform_update(params, use_multipart_conn = false) unless @id raise_invalid_request("Cannot update a #{@_name} resource "\ 'without an identifier') end response_json = @_client.send_request(@_resource_uri, 'POST', params, nil, use_multipart_conn, is_voice_request: @_is_voice_request) parse_and_set(params) parse_and_set(response_json) self end