Class: Marchex::Marchexapi

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

Instance Method Summary collapse

Constructor Details

#initialize(u, p) ⇒ Marchexapi

RestClient.log = ‘stdout’ #Debugging API calls



16
17
18
19
# File 'lib/marchex.rb', line 16

def initialize(u, p)
  @url = 'https://userapi.voicestar.com/api/jsonrpc/1'
  $auth = 'Basic ' + Base64.encode64(u + ':' + p).chomp      
end

Instance Method Details

#account_listObject



22
23
24
25
# File 'lib/marchex.rb', line 22

def ()
  response = parse_json(RestClient.post(@url, {'jsonrpc' => '2.0', 'id' => '1', 'method' => 'acct.list', 'params' => [] }.to_json, :content_type => 'application/json', :accept => 'application/json', :Authorization => $auth))
  
end

#ad_custom_define(acc_id, field_number, field_name, field_type, field_values) ⇒ Object



56
57
58
59
# File 'lib/marchex.rb', line 56

def ad_custom_define(acc_id,field_number, field_name, field_type, field_values)
  response = parse_json(RestClient.post(@url, {'jsonrpc' => '2.0', 'id' => '1', 'method' => 'ad.custom.define', 'params' => [acc_id,field_number, field_name, field_type, field_values]}.to_json, :content_type => 'application/json', :accept => 'application/json', :Authorization => $auth))
 return response.body["result"]
end

#ad_custom_set(acc_id, campaign_id, field_name, field_value) ⇒ Object



61
62
63
64
# File 'lib/marchex.rb', line 61

def ad_custom_set(acc_id, campaign_id, field_name, field_value)
  response = parse_json(RestClient.post(@url, {'jsonrpc' => '2.0', 'id' => '1', 'method' => 'ad.custom.set', 'params' => [acc_id,campaign_id, field_name, field_value]}.to_json, :content_type => 'application/json', :accept => 'application/json', :Authorization => $auth))
  return response.body["result"]
end

#ad_forward_list(campaign_id) ⇒ Object



37
38
39
# File 'lib/marchex.rb', line 37

def ad_forward_list(campaign_id)
 response = parse_json(RestClient.post(@url, {'jsonrpc' => '2.0', 'id' => '1', 'method' => 'ad.forw.list', 'params' => [campaign_id]}.to_json, :content_type => 'application/json', :accept => 'application/json', :Authorization => $auth))
end

#ad_record_status(campaign_id) ⇒ Object



41
42
43
44
# File 'lib/marchex.rb', line 41

def ad_record_status(campaign_id)
 response = parse_json(RestClient.post(@url, {'jsonrpc' => '2.0', 'id' => '1', 'method' => 'ad.recordcall.get', 'params' => [campaign_id]}.to_json, :content_type => 'application/json', :accept => 'application/json', :Authorization => $auth))
 return response.body["result"]
end

#call_search(opts = {}) ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/marchex.rb', line 66

def call_search ( opts = {})
  search_options = {}
  search_options[:start] = opts[:start] if opts[:start] 
  search_options[:end] = opts[:end] if opts[:end]
  search_options[:assto] = opts[:assto] if opts[:assto]
  search_options[:call_boundary] = opts[:call_boundary] if opts[:call_boundary]
  search_options[:callerid] = opts[:callerid] if opts[:callerid]
  search_options[:cmpid] = opts[:cmpid] if opts[:cmpid]
  search_options[:dispo] = opts[:dispo] if opts[:dispo]
  search_options[:dna_class] = opts[:dna_class] if opts[:dna_class]
  search_options[:exact_times] = opts[:exact_times] if opts[:exact_times]
  search_options[:extended] = opts[:extended] if opts[:extended]
  search_options[:exact_times] = true if opts[:extended] == true
  search_options[:grpid] = opts[:grpid] if opts[:grpid]
  search_options[:include_dna] = opts[:include_dna] if opts[:include_dna]
  search_options[:include_spotted_keywords] = opts[:include_spotted_keywords] if opts[:include_spotted_keywords]
  search_options[:keyword] = opts[:keyword] if opts[:keyword]
  search_options[:min_duration_secs] = opts[:min_duration_secs] if opts[:min_duration_secs]
  search_options[:status] = opts[:status] if opts[:status]
  search_options[:spotted_keywords] = opts[:spotted_keywords] if opts[:spotted_keywords]
  search_options[:subacct] = opts[:subacct] if opts[:subacct]
  response = parse_json(RestClient.post(@url, {'jsonrpc' => '2.0', 'id' => '1', 'method' => 'call.search', 'params' => [opts[:acct_id], search_options ]}.to_json, :content_type => 'application/json', :accept => 'application/json', :Authorization => $auth))
  return response.body["result"]
end

#client_ad_list(client_id, status = '') ⇒ Object



27
28
29
30
# File 'lib/marchex.rb', line 27

def client_ad_list(client_id, status ='')
  response = parse_json(RestClient.post(@url, {'jsonrpc' => '2.0', 'id' => '1', 'method' => 'ad.list.all', 'params' => [client_id, {'status' => status.downcase}]}.to_json, :content_type => 'application/json', :accept => 'application/json', :Authorization => $auth))

end

#get_call(call_id) ⇒ Object



91
92
93
94
# File 'lib/marchex.rb', line 91

def get_call (call_id)      
  response = parse_json(RestClient.post(@url, {'jsonrpc' => '2.0', 'id' => '1', 'method' => 'call.get', 'params' => [call_id]}.to_json, :content_type => 'application/json', :accept => 'application/json', :Authorization => $auth))
  return response.body["result"]
end

#get_call_audio(call_id, audio_format) ⇒ Object



96
97
98
99
# File 'lib/marchex.rb', line 96

def get_call_audio(call_id, audio_format)
  response = parse_json(RestClient.post(@url, {'jsonrpc' => '2.0', 'id' => '1', 'method' => 'call.audio', 'params' => [call_id, audio_format]}.to_json, :content_type => 'application/json', :accept => 'application/json', :Authorization => $auth))
  return response.body["result"]
end

#parse_json(response) ⇒ Object



32
33
34
35
# File 'lib/marchex.rb', line 32

def parse_json(response)
  body = JSON.parse(response.to_str) if response.code == 200
  OpenStruct.new(code: response.code, body: body)
end

#user_list(account_id) ⇒ Object



46
47
48
49
# File 'lib/marchex.rb', line 46

def user_list()
 response = parse_json(RestClient.post(@url, {'jsonrpc' => '2.0', 'id' => '1', 'method' => 'user.list', 'params' => []}.to_json, :content_type => 'application/json', :accept => 'application/json', :Authorization => $auth))
 return response.body["result"]
end

#user_permissions(user_id) ⇒ Object



51
52
53
54
# File 'lib/marchex.rb', line 51

def user_permissions(user_id)
 response = parse_json(RestClient.post(@url, {'jsonrpc' => '2.0', 'id' => '1', 'method' => 'user.permissions.get', 'params' => [user_id]}.to_json, :content_type => 'application/json', :accept => 'application/json', :Authorization => $auth))
 return response.body["result"]
end