polylink_api 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ed8bc5490bb5d26c7bc0377cdc53262ce1b921ca
4
- data.tar.gz: d7e88cc8075d3eced923c9d00675ef7117d5bb73
3
+ metadata.gz: 95a0826a248317f30e0372c9cce792c863b239ae
4
+ data.tar.gz: 9deb89aad40ba5208f616efd4b5278b910de37f7
5
5
  SHA512:
6
- metadata.gz: aee42ed958adcea2f4b626353ecee9027d39c45444feb9bb2d4c81bc7ec6586c6a79da070bec13d9e4082cf8b6123a9fcf33805091bfe96cc8b7f3582b4e36ea
7
- data.tar.gz: 3ea46a728c97c37458a80b6f40aecf5545ba73bf62d50943ba9adc0c6846398d7762a7af5ca0ee9472576f78dec647d88faa5db70c0c7c3fc4bcc6b200cd28ff
6
+ metadata.gz: 01cfbff77bee1a5183d63ffedfc2fc28a200c5f81f319636b50f1d85047a7a3d5c5eb959dc8b36dcd624a17849711a868ef2e577cbaaf0c31357a5faa5c00ff6
7
+ data.tar.gz: b335ca902ebdcffcc8135a51bcbbb571e4a18fa6f04fc01719bfff66f91773ded3f9cdcc762bb20a408d994efd1e66ca7eefb8665d6794ff1e811d35afc2480f
@@ -11,7 +11,6 @@ module PolylinkApi
11
11
  :get_v2_cid,
12
12
  :call_back_v2_c_id,
13
13
  :get_v2_c_cdr,
14
- :get_cdr,
15
14
  :upload_did_voice,
16
15
  :bind_phone_by_vendor_did,
17
16
  :delete_phone_by_vendor_did,
@@ -22,7 +21,7 @@ module PolylinkApi
22
21
  :getivr_did_list
23
22
  ]
24
23
 
25
- METHODS_RESPONSE_KEY = { get_v2_cid: "V2CID", get_v2_c_cdr: "CDR", get_vendor_did_phone_list: "List" }
24
+ METHODS_RESPONSE_KEY = { get_v2_cid: "V2CID", get_v2_c_cdr: "CDR", get_vendor_did_phone_list: "List", getivr_did_list: "List", get_vendor_did_ivr_did_list: "List" }
26
25
  STATUS_CODES = [ "500", "501", "502", "510", "511", "516", "517", "518", "519", "600" ]
27
26
 
28
27
  def self.client
@@ -43,13 +42,6 @@ module PolylinkApi
43
42
  ensure
44
43
  return get_response(method, response.body)
45
44
  end
46
-
47
- # log = PolylinkApi::Models::Log.new
48
- # PolylinkApi.logger.debug response.body
49
- # log.method = method
50
- # log.params = message
51
- # log.response = response.hash
52
- # log.save
53
45
  end
54
46
 
55
47
  def self.get_response(method, response_body){}
@@ -67,7 +59,7 @@ module PolylinkApi
67
59
  when "516" then raise InvalidDataError, "V2CID已存在"
68
60
  when "517" then raise InvalidDataError, "DID不存在"
69
61
  when "518" then raise InvalidDataError, "V2CID不存在"
70
- when "519" then raise InvalidDataError, "DID不存在"
62
+ when "519" then raise InvalidDataError, "虚拟总机DID不存在"
71
63
  when "600" then raise InvalidResponseError, "远程服务器发生未知错误"
72
64
  end
73
65
  return get_response_data(method, result)
@@ -98,23 +90,28 @@ module PolylinkApi
98
90
  end
99
91
  end
100
92
 
93
+ # 创建V2C DID绑定
101
94
  def self.create_v2c_did(v2c_id, vendor_phone, customer_phone, did)
102
95
  call(:create_v2_c_did, v2c_id: v2c_id, vendor_phone: vendor_phone, customer_phone: customer_phone, did: did)
103
96
  end
104
97
 
98
+ # 解除V2C DID绑定
105
99
  def self.delete_v2c_did(v2c_id)
106
100
  call(:delete_v2_c_did, v2c_id: v2c_id)
107
101
  end
108
102
 
103
+ # 根据V2C ID回拨
109
104
  def self.callback_v2c_id(v2c_id)
110
105
  call(:call_back_v2_c_id, v2c_id: v2c_id)
111
106
  end
112
107
 
108
+ # 获取V2C ID
113
109
  def self.get_v2c_id(vendor_phone, customer_phone, did)
114
110
  call(:get_v2_cid, vendor_phone: vendor_phone, customer_phone: customer_phone, did: did)
115
111
  end
116
112
 
117
- def self.get_records(did, type, begintime, endtime, vendor_phone = nil, customer_phone = nil, page = 1, page_count = 10)
113
+ # V2C ID通话记录查询
114
+ def self.get_cdrs(did, type, begintime, endtime, vendor_phone = nil, customer_phone = nil, page = 1, page_count = 10)
118
115
  begintime = begintime.strftime("%Y-%m-%d %H:%M:%S") unless begintime.nil?
119
116
  endtime = endtime.strftime("%Y-%m-%d %H:%M:%S") unless endtime.nil?
120
117
  response = call(:get_v2_c_cdr,
@@ -140,7 +137,24 @@ module PolylinkApi
140
137
  cdrs
141
138
  end
142
139
 
143
- def self.get_record_file(file)
140
+ def self.get_cdr_from_string(string)
141
+ cdr = {}
142
+ attributes = string.split(',')
143
+ cdr[:did] = attributes[0]
144
+ cdr[:v2c_id] = attributes[1]
145
+ cdr[:device_name] = attributes[2]
146
+ cdr[:calling_number] = attributes[3]
147
+ cdr[:called_number] = attributes[4]
148
+ cdr[:starttime] = attributes[5]
149
+ cdr[:duration] = attributes[6]
150
+ cdr[:endtime] = attributes[7]
151
+ cdr[:recordpath] = attributes[8]
152
+ cdr[:call_status] = attributes[9]
153
+ return cdr
154
+ end
155
+
156
+ # 下载录音文件
157
+ def self.get_cdr_file(file)
144
158
  local_file = File.join(PolylinkApi.config.cdrs_path, file)
145
159
  remote_file = PolylinkApi.config.download_server + file
146
160
  unless File.exists?(local_file)
@@ -161,22 +175,7 @@ module PolylinkApi
161
175
  local_file
162
176
  end
163
177
 
164
- def self.get_cdr_from_string(string)
165
- cdr = {}
166
- attributes = string.split(',')
167
- cdr[:did] = attributes[0]
168
- cdr[:v2c_id] = attributes[1]
169
- cdr[:device_name] = attributes[2]
170
- cdr[:calling_number] = attributes[3]
171
- cdr[:called_number] = attributes[4]
172
- cdr[:starttime] = attributes[5]
173
- cdr[:duration] = attributes[6]
174
- cdr[:endtime] = attributes[7]
175
- cdr[:recordpath] = attributes[8]
176
- cdr[:call_status] = attributes[9]
177
- return cdr
178
- end
179
-
178
+ #
180
179
  def self.bind_did_default_phone(did, vendor_phone)
181
180
  call(:bind_phone_by_vendor_did, vendor_did: did, phone: vendor_phone)
182
181
  end
@@ -196,12 +195,42 @@ module PolylinkApi
196
195
  did_phone = {}
197
196
  attributes = item.split(',')
198
197
  did_phone[:did] = attributes[0]
199
- did_phone[:phone] = attributes[1]
198
+ did_phone[:default_phone] = attributes[1]
200
199
  did_phones_list << did_phone
201
200
  end
202
201
  return did_phones_list
203
202
  end
204
203
 
204
+ def self.bind_did_default_did(did, vendor_did)
205
+ call(:bindivr_by_vendor_did, vendor_did: did, ivr_did: vendor_did)
206
+ end
207
+
208
+ def self.unbind_did_default_did(did)
209
+ call(:deleteivr_by_vendor_did, vendor_did: did)
210
+ end
211
+
212
+ def self.get_did_default_dids_list
213
+ response = call(:get_vendor_did_ivr_did_list)
214
+ get_did_dids_from_string response
215
+ end
216
+
217
+ def self.get_did_dids_from_string(string)
218
+ did_dids_list = []
219
+ string.split(';').each do |item|
220
+ did_did = {}
221
+ attributes = item.split(',')
222
+ did_did[:did] = attributes[0]
223
+ did_did[:default_did] = attributes[1]
224
+ did_dids_list << did_did
225
+ end
226
+ return did_dids_list
227
+ end
228
+
229
+ def self.get_dids
230
+ response = call(:getivr_did_list)
231
+ return response.split(';')
232
+ end
233
+
205
234
  def self.set_did_announcement(did, file)
206
235
  if File.exists? file
207
236
  data = File.read file
@@ -1,3 +1,3 @@
1
1
  module PolylinkApi
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/polylink_api.gemspec CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["liuzelei"]
10
10
  spec.email = ["liuzelei@gmail.com"]
11
11
  spec.summary = '跟聚领对接的接口'
12
- spec.description = '基本上采用webservice方式'
12
+ spec.description = '跟聚领对接的接口'
13
13
  spec.homepage = ""
14
14
  spec.license = "MIT"
15
15
 
@@ -6,12 +6,10 @@ describe "Helper" do
6
6
 
7
7
  before(:all) do
8
8
  response = PolylinkApi::Helper.create_v2c_did(binding_id, "18101801755", "18616015606", did)
9
- expect(response).to be_nil
10
9
  end
11
10
 
12
11
  after(:all) do
13
12
  response = PolylinkApi::Helper.delete_v2c_did(binding_id)
14
- expect(response).to be_nil
15
13
  end
16
14
 
17
15
  it "should bind get client" do
@@ -78,7 +76,7 @@ describe "Helper" do
78
76
  response = PolylinkApi::Helper.get_did_default_phones_list
79
77
  expect(response).to be_an_instance_of(Array)
80
78
  expect(response.length).to be >= 1
81
- expect(response[0].keys).to eq([:did, :phone])
79
+ expect(response[0].keys).to eq([:did, :default_phone])
82
80
  response = PolylinkApi::Helper.unbind_did_default_phone(did)
83
81
  expect(response).to be_nil
84
82
  end
@@ -106,14 +104,14 @@ describe "Helper" do
106
104
  end
107
105
 
108
106
  it "should get cdr records" do
109
- response = PolylinkApi::Helper.get_records(did, 1, Time.now - 2.hours, Time.now)
107
+ response = PolylinkApi::Helper.get_cdrs(did, 1, Time.now - 2.hours, Time.now + 2.hours)
110
108
  expect(response).to be_an_instance_of(Array)
111
109
  expect(response.length).to be >= 1
112
110
  end
113
111
 
114
112
  it "should get cdr file" do
115
- file_cdr = "20141014/20141014141953_13636632007_18101801755_33190064_58.WAV"
116
- file = PolylinkApi::Helper.get_record_file(file_cdr)
113
+ file_cdr = "20150202/20150202162456_18101801755_18616015606_33190074_58.WAV"
114
+ file = PolylinkApi::Helper.get_cdr_file(file_cdr)
117
115
  expect(file).to eq(File.join(PolylinkApi.config.cdrs_path, file_cdr))
118
116
  expect(File.exists?(File.join(PolylinkApi.config.cdrs_path, file_cdr))).to be true
119
117
  end
@@ -128,4 +126,21 @@ describe "Helper" do
128
126
  response = PolylinkApi::Helper.remove_did_announcement(did)
129
127
  expect(response).to be_nil
130
128
  end
129
+
130
+ it "should get default did" do
131
+ response = PolylinkApi::Helper.bind_did_default_did(did, "33190084")
132
+ expect(response).to be_nil
133
+ response = PolylinkApi::Helper.get_did_default_dids_list
134
+ expect(response).to be_an_instance_of(Array)
135
+ expect(response.length).to be >= 1
136
+ expect(response[0].keys).to eq([:did, :default_did])
137
+ response = PolylinkApi::Helper.unbind_did_default_did(did)
138
+ expect(response).to be_nil
139
+ end
140
+
141
+ it "should get did default dids" do
142
+ response = PolylinkApi::Helper.get_dids
143
+ expect(response).to be_an_instance_of(Array)
144
+ expect(response.length).to be >= 1
145
+ end
131
146
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: polylink_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - liuzelei
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-22 00:00:00.000000000 Z
11
+ date: 2015-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -122,7 +122,7 @@ dependencies:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: 4.0.0
125
- description: "基本上采用webservice方式"
125
+ description: "跟聚领对接的接口"
126
126
  email:
127
127
  - liuzelei@gmail.com
128
128
  executables: []