gotransverse-tract-api 0.9.1 → 0.9.2
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 +4 -4
- data/lib/gotransverse-tract-api/api_data.rb +78 -39
- data/lib/gotransverse-tract-api/order/organization.rb +8 -15
- data/lib/gotransverse-tract-api/order/people.rb +0 -22
- data/lib/gotransverse-tract-api/usage/rate_table.rb +8 -0
- data/lib/gotransverse-tract-api/version.rb +1 -1
- data/spec/gotransverse-tract-api/api_data_spec.rb +19 -0
- data/spec/gotransverse-tract-api/order/people_spec.rb +0 -18
- data/spec/gotransverse-tract-api/usage/rate_table_spec.rb +19 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fce9f9f3e3f911147aaf81a575781c67600ddd97
|
4
|
+
data.tar.gz: f776201ed0e6a007baff0db725c7c752ea84a1ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 570bb59248b7a871f612ad16db32846c5461e6f6d9268ff46551663901f509bfb8b1571091bd0e6e82f7116c0cd6dfbbd2d0bdd819eba2a08288aef4dee40be3
|
7
|
+
data.tar.gz: 68f1dbab0601e8e1b09b7f1315f7b4917f89c4b3c66a33256d69a0286154208e3ae32939da19c3ee4298a1182c4cff0b0382d8ccc2c0549205a6cdfefbacc0fa
|
@@ -212,7 +212,7 @@ module GoTransverseTractApi
|
|
212
212
|
startDate: billing_account[:start_date],
|
213
213
|
taxExempt: billing_account[:tax_exempt],
|
214
214
|
eid: billing_account[:eid]
|
215
|
-
}
|
215
|
+
},
|
216
216
|
dailyBillCycle: {
|
217
217
|
name: billing_account[:daily_bill_cycle][:name],
|
218
218
|
startDate: billing_account[:daily_bill_cycle][:start_date],
|
@@ -222,7 +222,7 @@ module GoTransverseTractApi
|
|
222
222
|
usePaymentTerm: billing_account[:daily_bill_cycle][:use_payment_term],
|
223
223
|
status: billing_account[:daily_bill_cycle][:status],
|
224
224
|
eid: billing_account[:daily_bill_cycle][:eid]
|
225
|
-
}
|
225
|
+
},
|
226
226
|
person: {
|
227
227
|
attributes: {
|
228
228
|
firstName: billing_account[:person][:first_name],
|
@@ -230,22 +230,22 @@ module GoTransverseTractApi
|
|
230
230
|
eid: billing_account[:person][:eid]
|
231
231
|
},
|
232
232
|
addresses: get_addresses(billing_account[:person])
|
233
|
-
}
|
233
|
+
},
|
234
234
|
billingAccountCategory: {
|
235
235
|
type: billing_account[:billing_account_category][:type],
|
236
236
|
description: billing_account[:billing_account_category][:description],
|
237
237
|
status: billing_account[:billing_account_category][:status],
|
238
238
|
eid: billing_account[:billing_account_category][:eid]
|
239
|
-
}
|
239
|
+
},
|
240
240
|
paymentTerm: {
|
241
241
|
name: billing_account[:payment_term][:name],
|
242
242
|
termDays: billing_account[:payment_term][:term_days],
|
243
243
|
graceDays: billing_account[:payment_term][:grace_days],
|
244
244
|
eid: billing_account[:payment_term][:eid]
|
245
|
-
}
|
245
|
+
}
|
246
246
|
}
|
247
247
|
|
248
|
-
ba_details
|
248
|
+
compact ba_details
|
249
249
|
end
|
250
250
|
|
251
251
|
def get_query_params(params, options={})
|
@@ -262,53 +262,92 @@ module GoTransverseTractApi
|
|
262
262
|
}
|
263
263
|
|
264
264
|
if entity[:addresses].has_key?(:email_address)
|
265
|
-
email_address =
|
266
|
-
emailAddress: {
|
267
|
-
purpose: entity[:addresses][:email_address][:purpose],
|
268
|
-
email: entity[:addresses][:email_address][:email],
|
269
|
-
}.delete_if{|k,v| v.nil?}
|
270
|
-
}.delete_if{|k,v| v.nil?}
|
271
|
-
|
265
|
+
email_address = get_email_address(entity[:addresses][:email_address])
|
272
266
|
addresses.merge! email_address if email_address.present?
|
273
267
|
end
|
274
|
-
|
275
|
-
if entity[:addresses].has_key?(:postal_address)
|
276
|
-
postal_address = {
|
277
|
-
postalAddress: {
|
278
|
-
purpose: entity[:addresses][:postal_address][:purpose],
|
279
|
-
country: entity[:addresses][:postal_address][:country],
|
280
|
-
city: entity[:addresses][:postal_address][:city],
|
281
|
-
regionOrState: entity[:addresses][:postal_address][:region_or_state],
|
282
|
-
attention: entity[:addresses][:postal_address][:attention],
|
283
|
-
postalCode: entity[:addresses][:postal_address][:postal_code],
|
284
|
-
line1: entity[:addresses][:postal_address][:line1],
|
285
|
-
}.delete_if{|k,v| v.nil?}
|
286
|
-
}.delete_if{|k,v| v.nil?}
|
287
268
|
|
269
|
+
if entity[:addresses].has_key?(:postal_address)
|
270
|
+
postal_address = get_postal_address(entity[:addresses][:postal_address])
|
288
271
|
addresses.merge! postal_address if postal_address.present?
|
289
272
|
end
|
290
273
|
|
291
274
|
if entity[:addresses].has_key?(:telecom_address)
|
292
|
-
tele_address =
|
293
|
-
telecomAddress: {
|
294
|
-
dialingPrefix: entity[:addresses].try(:[],:telecom_address).try(:[],:dialing_prefix),
|
295
|
-
countryCode: entity[:addresses].try(:[],:telecom_address).try(:[],:country_code),
|
296
|
-
areaCode: entity[:addresses].try(:[],:telecom_address).try(:[],:area_code),
|
297
|
-
number: entity[:addresses].try(:[],:telecom_address).try(:[],:number),
|
298
|
-
extension: entity[:addresses].try(:[],:telecom_address).try(:[],:extension),
|
299
|
-
purpose: entity[:addresses].try(:[],:telecom_address).try(:[],:purpose),
|
300
|
-
eid: entity[:addresses].try(:[],:telecom_address).try(:[],:eid)
|
301
|
-
}.delete_if{|k,v| v.nil?}
|
302
|
-
}.delete_if{|k,v| v.nil?}
|
303
|
-
|
275
|
+
tele_address = get_telecom_address(entity[:addresses][:telecom_address])
|
304
276
|
addresses.merge! tele_address if tele_address.present?
|
305
277
|
end
|
306
278
|
|
307
|
-
addresses
|
279
|
+
compact addresses
|
308
280
|
|
309
281
|
rescue
|
310
282
|
{}
|
311
283
|
end
|
312
284
|
|
285
|
+
# Returns {Hash} Postal Address
|
286
|
+
def get_postal_address(entity)
|
287
|
+
postal_address = {
|
288
|
+
postalAddress: {
|
289
|
+
purpose: entity[:purpose],
|
290
|
+
country: entity[:country],
|
291
|
+
city: entity[:city],
|
292
|
+
regionOrState: entity[:region_or_state],
|
293
|
+
attention: entity[:attention],
|
294
|
+
postalCode: entity[:postal_code],
|
295
|
+
line1: entity[:line1]
|
296
|
+
}
|
297
|
+
}
|
298
|
+
|
299
|
+
compact postal_address
|
300
|
+
end
|
301
|
+
|
302
|
+
# Returns {Hash} Email Address
|
303
|
+
def get_email_address(entity)
|
304
|
+
email_address = {
|
305
|
+
emailAddress: {
|
306
|
+
purpose: entity[:purpose],
|
307
|
+
email: entity[:email]
|
308
|
+
}
|
309
|
+
}
|
310
|
+
|
311
|
+
compact email_address
|
312
|
+
end
|
313
|
+
|
314
|
+
# Returns {Hash} Telecom Address
|
315
|
+
def get_telecom_address(entity)
|
316
|
+
tele_address = {
|
317
|
+
telecomAddress: {
|
318
|
+
dialingPrefix: entity.try(:[],:dialing_prefix),
|
319
|
+
countryCode: entity.try(:[],:country_code),
|
320
|
+
areaCode: entity.try(:[],:area_code),
|
321
|
+
number: entity.try(:[],:number),
|
322
|
+
extension: entity.try(:[],:extension),
|
323
|
+
purpose: entity.try(:[],:purpose),
|
324
|
+
eid: entity.try(:[],:eid)
|
325
|
+
}
|
326
|
+
}
|
327
|
+
|
328
|
+
compact tele_address
|
329
|
+
end
|
330
|
+
|
331
|
+
# Remove all nil elements from hash
|
332
|
+
def compact(h={})
|
333
|
+
h.each do|k,v|
|
334
|
+
if v.nil?
|
335
|
+
h.delete(k)
|
336
|
+
elsif (v.is_a?(Hash) && v.empty?)
|
337
|
+
next
|
338
|
+
end
|
339
|
+
|
340
|
+
compact v if v.is_a?Hash
|
341
|
+
end
|
342
|
+
|
343
|
+
# Remove all empty hashes except first key if it is empty
|
344
|
+
# since that is required for XML root element attributes
|
345
|
+
h.delete_if do|k,v|
|
346
|
+
v.is_a?(Hash) && v.empty? && k != h.keys[0]
|
347
|
+
end
|
348
|
+
|
349
|
+
h
|
350
|
+
end
|
351
|
+
|
313
352
|
end
|
314
353
|
end
|
@@ -61,25 +61,18 @@ module GoTransverseTractApi
|
|
61
61
|
end
|
62
62
|
|
63
63
|
if (address.has_key?(:postal_address))
|
64
|
-
postal_address =
|
65
|
-
|
66
|
-
purpose: address[:postal_address][:purpose],
|
67
|
-
country: address[:postal_address][:country],
|
68
|
-
city: address[:postal_address][:city],
|
69
|
-
regionOrState: address[:postal_address][:region_or_state],
|
70
|
-
attention: address[:postal_address][:attention],
|
71
|
-
postalCode: address[:postal_address][:postal_code],
|
72
|
-
line1: address[:postal_address][:line1],
|
73
|
-
}.delete_if{|k,v| v.nil?}
|
74
|
-
}.delete_if{|k,v| v.nil?}
|
75
|
-
|
76
|
-
data.merge!({ postalAddress: postal_address[:postalAddress] })
|
64
|
+
postal_address = GoTransverseTractApi::ApiData.new.get_postal_address(address[:postal_address])
|
65
|
+
data.merge!(postal_address)
|
77
66
|
end
|
67
|
+
|
78
68
|
if (address.has_key?(:email_address))
|
79
|
-
|
69
|
+
email_address = GoTransverseTractApi::ApiData.new.get_email_address(address[:email_address])
|
70
|
+
data.merge!(email_address)
|
80
71
|
end
|
72
|
+
|
81
73
|
if (address.has_key?(:telecom_address))
|
82
|
-
|
74
|
+
telecom_address = GoTransverseTractApi::ApiData.new.get_telecom_address(address[:telecom_address])
|
75
|
+
data.merge!(telecom_address)
|
83
76
|
end
|
84
77
|
|
85
78
|
xml_data = GoTransverseTractApi.generateXML(data, 'addAddressToParty')
|
@@ -73,28 +73,6 @@ module GoTransverseTractApi
|
|
73
73
|
GoTransverseTractApi.put_request_for(self, {eid: eid}, xml_data)
|
74
74
|
end
|
75
75
|
|
76
|
-
#
|
77
|
-
# @param {Long} eid
|
78
|
-
# @param {Hash} address
|
79
|
-
#
|
80
|
-
def self.add_address eid, address
|
81
|
-
data = {
|
82
|
-
addAddressToParty: {},
|
83
|
-
person: {eid: eid},
|
84
|
-
postalAddress: {
|
85
|
-
purpose: address[:purpose],
|
86
|
-
country: address[:country],
|
87
|
-
city: address[:city],
|
88
|
-
regionOrState: address[:region_or_state],
|
89
|
-
postalCode: address[:postal_code],
|
90
|
-
line1: address[:line1]
|
91
|
-
}
|
92
|
-
}
|
93
|
-
|
94
|
-
xml_data = GoTransverseTractApi.generateXML(data, 'addAddressToParty')
|
95
|
-
GoTransverseTractApi.post_request_for(self, {eid: eid}, xml_data, "addAddress")
|
96
|
-
end
|
97
|
-
|
98
76
|
end
|
99
77
|
|
100
78
|
end
|
@@ -6,6 +6,14 @@ module GoTransverseTractApi
|
|
6
6
|
|
7
7
|
class << self
|
8
8
|
|
9
|
+
#
|
10
|
+
# @param {Hash} options
|
11
|
+
#
|
12
|
+
def find_all options={}
|
13
|
+
params ||= GoTransverseTractApi::ApiData.new.get_query_params({}, options)
|
14
|
+
GoTransverseTractApi.get_response_for(self, params)
|
15
|
+
end
|
16
|
+
|
9
17
|
#
|
10
18
|
# @param {Long} eid
|
11
19
|
# @param {Hash} options
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module GoTransverseTractApi
|
4
|
+
|
5
|
+
RSpec.describe ApiData do
|
6
|
+
before(:each) { http_auth }
|
7
|
+
|
8
|
+
describe ".compact" do
|
9
|
+
it "returns a hash by eliminating all nil" do
|
10
|
+
given_hash = {a: {}, c: 'p', s: nil, d: {e: nil, m: nil}, f: {g: {}, x: {n: 'h', i: nil, j: 'l'}}}
|
11
|
+
expected_hash = {:a=>{}, :c=>"p", :f=>{:g=>{}, :x=>{:n=>"h", :j=>"l"}}}
|
12
|
+
|
13
|
+
expect(described_class.new.compact(given_hash)).to eq(expected_hash)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -8,24 +8,6 @@ module GoTransverseTractApi
|
|
8
8
|
let(:eid) { '4096' }
|
9
9
|
let(:response) { {a: 'b', c: 'd'} }
|
10
10
|
|
11
|
-
context ".add_address" do
|
12
|
-
it "adds address for the customer" do
|
13
|
-
eid = '48406'
|
14
|
-
|
15
|
-
data = {
|
16
|
-
city: 'fsfsfs',
|
17
|
-
country: 'USA',
|
18
|
-
line1: 'wefsvgg ggdgdgd',
|
19
|
-
postal_code: '232433',
|
20
|
-
purpose: 'Billing',
|
21
|
-
region_or_state: 'CA'
|
22
|
-
}
|
23
|
-
|
24
|
-
allow(subject).to receive(:add_address).with(eid, data).and_return(response)
|
25
|
-
expect(subject.add_address(eid, data)).to eq(response)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
11
|
context ".update" do
|
30
12
|
it "updates a person details" do
|
31
13
|
data = { eid: eid, name: 'John Smith', tax_id_number: '124224242' }
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module GoTransverseTractApi
|
4
|
+
|
5
|
+
RSpec.describe Usage::RateTable do
|
6
|
+
before(:each) { http_auth }
|
7
|
+
|
8
|
+
let(:response) { {a: 'b', c: 'd'} }
|
9
|
+
|
10
|
+
describe ".find_all" do
|
11
|
+
it "returns all rate table entries" do
|
12
|
+
data = described_class.find_all
|
13
|
+
expect(data).to_not be_nil
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gotransverse-tract-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julien DeFrance
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-03-
|
12
|
+
date: 2016-03-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -207,6 +207,7 @@ files:
|
|
207
207
|
- lib/gotransverse-tract-api/usage/usage_some.rb
|
208
208
|
- lib/gotransverse-tract-api/version.rb
|
209
209
|
- spec/auth_helper.rb
|
210
|
+
- spec/gotransverse-tract-api/api_data_spec.rb
|
210
211
|
- spec/gotransverse-tract-api/billing_account/adjustment_spec.rb
|
211
212
|
- spec/gotransverse-tract-api/billing_account/billing_account_spec.rb
|
212
213
|
- spec/gotransverse-tract-api/billing_account/counter_spec.rb
|
@@ -232,6 +233,7 @@ files:
|
|
232
233
|
- spec/gotransverse-tract-api/service/service_spec.rb
|
233
234
|
- spec/gotransverse-tract-api/usage/order_item_usage_rule_spec.rb
|
234
235
|
- spec/gotransverse-tract-api/usage/product_usage_rule_spec.rb
|
236
|
+
- spec/gotransverse-tract-api/usage/rate_table_spec.rb
|
235
237
|
- spec/gotransverse-tract-api/usage/usage_event_spec.rb
|
236
238
|
- spec/gotransverse-tract-api_spec.rb
|
237
239
|
- spec/spec_helper.rb
|
@@ -262,6 +264,7 @@ summary: A ruby gem allowing developers to conveniently integrate with GoTransve
|
|
262
264
|
TRACT API.
|
263
265
|
test_files:
|
264
266
|
- spec/auth_helper.rb
|
267
|
+
- spec/gotransverse-tract-api/api_data_spec.rb
|
265
268
|
- spec/gotransverse-tract-api/billing_account/adjustment_spec.rb
|
266
269
|
- spec/gotransverse-tract-api/billing_account/billing_account_spec.rb
|
267
270
|
- spec/gotransverse-tract-api/billing_account/counter_spec.rb
|
@@ -287,6 +290,7 @@ test_files:
|
|
287
290
|
- spec/gotransverse-tract-api/service/service_spec.rb
|
288
291
|
- spec/gotransverse-tract-api/usage/order_item_usage_rule_spec.rb
|
289
292
|
- spec/gotransverse-tract-api/usage/product_usage_rule_spec.rb
|
293
|
+
- spec/gotransverse-tract-api/usage/rate_table_spec.rb
|
290
294
|
- spec/gotransverse-tract-api/usage/usage_event_spec.rb
|
291
295
|
- spec/gotransverse-tract-api_spec.rb
|
292
296
|
- spec/spec_helper.rb
|