class Plivo::Base::ResourceInterface
Public Class Methods
new(client, resource_list_json = nil)
click to toggle source
# File lib/plivo/base/resource_interface.rb, line 5 def initialize(client, resource_list_json = nil) configure_client(client) configure_resource_uri parse_and_set(resource_list_json) if resource_list_json @_is_voice_request = false end
Private Instance Methods
configure_client(client)
click to toggle source
# File lib/plivo/base/resource_interface.rb, line 14 def configure_client(client) valid_param?(:client, client, [RestClient, Phlo], true) @_client = client end
configure_resource_uri()
click to toggle source
# File lib/plivo/base/resource_interface.rb, line 19 def configure_resource_uri to_join = ['', 'v1', 'Account', @_client.auth_id, @_name, ''] to_join = ['', 'v1', 'Account', ''] if @_name == 'Account' to_join = ['', 'v1', @_name, ''] if @_name == 'phlo' @_resource_uri = to_join.join('/') end
parse_and_set(resource_list_json)
click to toggle source
# File lib/plivo/base/resource_interface.rb, line 26 def parse_and_set(resource_list_json) return unless resource_list_json valid_param?(:resource_list_json, resource_list_json, Hash, true) resource_list_json.each do |k, v| if k == 'objects' parse_and_set_list(resource_list_json['objects']) elsif k == 'meta' @_meta = resource_list_json['meta'] else instance_variable_set("@#{k}", v) self.class.send(:attr_reader, k) end end end
parse_and_set_list(list_json)
click to toggle source
# File lib/plivo/base/resource_interface.rb, line 91 def parse_and_set_list(list_json) return unless list_json valid_param?(:list_json, list_json, Array, false) @_resource_list = list_json.map do |resource| @_resource_type.new(@_client, resource_json: resource) end end
perform_action(action = nil, method = 'GET', params = nil, parse = false)
click to toggle source
# File lib/plivo/base/resource_interface.rb, line 113 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_with_identifier(identifier = nil, method = 'GET', params = nil)
click to toggle source
# File lib/plivo/base/resource_interface.rb, line 121 def perform_action_with_identifier(identifier = nil, method = 'GET', params = nil) resource_path = identifier ? @_resource_uri + identifier + '/' : @_resource_uri Response.new( @_client.send_request(resource_path, method, params, nil, false, is_voice_request: @_is_voice_request), @_identifier_string ) end
perform_create(params, use_multipart_conn=false)
click to toggle source
# File lib/plivo/base/resource_interface.rb, line 63 def perform_create(params, use_multipart_conn=false) Response.new( @_client.send_request(@_resource_uri, 'POST', params, 10, use_multipart_conn, is_voice_request: @_is_voice_request), @_identifier_string ) end
perform_delete(identifier, params = nil)
click to toggle source
# File lib/plivo/base/resource_interface.rb, line 70 def perform_delete(identifier, params = nil) valid_param?(:identifier, identifier, [String, Symbol], true) Response.new( @_client.send_request(@_resource_uri + identifier.to_s + '/', 'DELETE', params, nil, false, is_voice_request: @_is_voice_request), @_identifier_string ) end
perform_get(identifier, params = nil)
click to toggle source
# File lib/plivo/base/resource_interface.rb, line 43 def perform_get(identifier, params = nil) valid_param?(:identifier, identifier, [String, Symbol], true) response_json = @_client.send_request(@_resource_uri + identifier.to_s + '/', 'GET', params, nil, false, is_voice_request: @_is_voice_request) @_resource_type.new(@_client, resource_json: response_json) end
perform_get_with_response(identifier, params = nil)
click to toggle source
# File lib/plivo/base/resource_interface.rb, line 49 def perform_get_with_response(identifier, params = nil) valid_param?(:identifier, identifier, [String, Symbol], true) response_json = @_client.send_request(@_resource_uri + identifier.to_s + '/', 'GET', params, nil, false, is_voice_request: @_is_voice_request) resource_json = response_json["response"] # Pass the parsed JSON to initialize the resource object @_resource_type.new(@_client, resource_json: resource_json) end
perform_get_without_identifier(params)
click to toggle source
# File lib/plivo/base/resource_interface.rb, line 57 def perform_get_without_identifier(params) valid_param?(:params, params, Hash, true) response_json = @_client.send_request(@_resource_uri, 'GET', params, nil, false, is_voice_request: @_is_voice_request) @_resource_type.new(@_client, resource_json: response_json) end
perform_list(params = nil)
click to toggle source
# File lib/plivo/base/resource_interface.rb, line 99 def perform_list(params = nil) response_json = @_client.send_request(@_resource_uri, 'GET', params, nil, false, is_voice_request: @_is_voice_request) parse_and_set(response_json) { api_id: @api_id, meta: @_meta, objects: @_resource_list } end
perform_list_with_response(params = nil)
click to toggle source
# File lib/plivo/base/resource_interface.rb, line 109 def perform_list_with_response(params = nil) @_client.send_request(@_resource_uri, 'GET', params, nil, false, is_voice_request: @_is_voice_request) end
perform_list_without_object(params = nil)
click to toggle source
# File lib/plivo/base/resource_interface.rb, line 129 def perform_list_without_object(params = nil) response_json = @_client.send_request(@_resource_uri, 'GET', params, nil, false, is_voice_request: @_is_voice_request) parse_and_set(response_json) response_json end
perform_post(params)
click to toggle source
# File lib/plivo/base/resource_interface.rb, line 84 def perform_post(params) response_json = @_client.send_request(@_resource_uri, 'POST', params, nil, false, is_voice_request: @_is_voice_request) parse_and_set(response_json) self end
perform_submit(identifier, params = nil)
click to toggle source
# File lib/plivo/base/resource_interface.rb, line 78 def perform_submit(identifier, params = nil) valid_param?(:identifier, identifier, [String, Symbol], true) response_json = @_client.send_request(@_resource_uri + identifier.to_s + '/Submit/', 'POST', params, nil, false, is_voice_request: @_is_voice_request) @_resource_type.new(@_client, resource_json: response_json) end