usps-imis-api 0.6.11 → 0.6.12
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/Gemfile.lock +1 -1
- data/lib/usps/imis/api.rb +19 -0
- data/lib/usps/imis/version.rb +1 -1
- data/spec/lib/usps/imis/api_spec.rb +15 -0
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 03dbc937f5336d48ede502436a3ddcee7d77f8f357d18d807ac4119b52acf7e8
|
|
4
|
+
data.tar.gz: 9052ead6d9fb967e5faadb730d7000f32d0e97e83545e60fdef7e9a0b3deda18
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 33d7ced678ecc240e405b73fe5ba6c006fedece86612f76018296166c53e8226996b27617fb1a7212f885c4a5107c9c03186ad922106ccc79714e6a522127fd9
|
|
7
|
+
data.tar.gz: 78b04d51fde868adf81b86231083bdafdb6f08a7f6e7664ba3406b65557be09bb875cc9f1c37846a353872f784cdc872506b27415150ad1b5f79363b5baf29aa
|
data/Gemfile.lock
CHANGED
data/lib/usps/imis/api.rb
CHANGED
|
@@ -113,6 +113,25 @@ module Usps
|
|
|
113
113
|
JSON.parse(result.body)
|
|
114
114
|
end
|
|
115
115
|
|
|
116
|
+
# Run an IQA Query, paging through all responses
|
|
117
|
+
#
|
|
118
|
+
# @param query_name [String] Full path of the query in IQA, e.g. +$/_ABC/Fiander/iMIS_ID+
|
|
119
|
+
# @query_params [Hash] Conforms to pattern +{ param_name => param_value }+
|
|
120
|
+
#
|
|
121
|
+
# @return [Array<Hash>] Collected response item values from the API
|
|
122
|
+
#
|
|
123
|
+
def query_all(query_name, query_params = {})
|
|
124
|
+
response = query(query_name, **query_params)
|
|
125
|
+
results = response['Items']['$values']
|
|
126
|
+
|
|
127
|
+
while response['HasNext']
|
|
128
|
+
response = query(query_name, **query_params, Offset: response['NextOffset'])
|
|
129
|
+
results += response['Items']['$values']
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
results
|
|
133
|
+
end
|
|
134
|
+
|
|
116
135
|
# An instance of +BusinessObject+, using this instance as its parent +Api+
|
|
117
136
|
#
|
|
118
137
|
# @param business_object_name [String] Name of the business object
|
data/lib/usps/imis/version.rb
CHANGED
|
@@ -37,6 +37,21 @@ describe Usps::Imis::Api do
|
|
|
37
37
|
end
|
|
38
38
|
end
|
|
39
39
|
|
|
40
|
+
describe '#query_all' do
|
|
41
|
+
before do
|
|
42
|
+
allow(api).to receive(:query).and_return(
|
|
43
|
+
{ 'Items' => { '$values' => [{ 'key1' => 'value1' }] }, 'HasNext' => true, 'NextOffset' => 1 },
|
|
44
|
+
{ 'Items' => { '$values' => [{ 'key1' => 'value2' }] }, 'HasNext' => false, 'NextOffset' => 0 }
|
|
45
|
+
)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
it 'collects all query results' do
|
|
49
|
+
expect(api.query_all('$/ABC/ExampleQueryAll')).to eq(
|
|
50
|
+
[{ 'key1' => 'value1' }, { 'key1' => 'value2' }]
|
|
51
|
+
)
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
40
55
|
describe '#put' do
|
|
41
56
|
before { api.imis_id = 31092 }
|
|
42
57
|
|