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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cd7f53417285bbe15766b1e79e88448807a1e481f13cb20a16d1bfb791a96f15
4
- data.tar.gz: fb6c040f10270293db091bd20c25de73679de83fd24bf1253cbd50f82e53c1e3
3
+ metadata.gz: 03dbc937f5336d48ede502436a3ddcee7d77f8f357d18d807ac4119b52acf7e8
4
+ data.tar.gz: 9052ead6d9fb967e5faadb730d7000f32d0e97e83545e60fdef7e9a0b3deda18
5
5
  SHA512:
6
- metadata.gz: e65d398030e74648c5c0ceadcc1ab9bd3b94e481d5c20c14761d30e3efa4dcb6a3293e1b4d2d5de2f3678acd8cac80f0051074cff86c99386023e097ce3e2b4e
7
- data.tar.gz: f436a6c796ffef704e7fd73ceb59e9352b77bb1a35efa0cbf96909e47a3ee7c24fbf4288cbe413941da49e6bf69c8b88aa2a952c0426523ec4ff9b5ae8f2c3df
6
+ metadata.gz: 33d7ced678ecc240e405b73fe5ba6c006fedece86612f76018296166c53e8226996b27617fb1a7212f885c4a5107c9c03186ad922106ccc79714e6a522127fd9
7
+ data.tar.gz: 78b04d51fde868adf81b86231083bdafdb6f08a7f6e7664ba3406b65557be09bb875cc9f1c37846a353872f784cdc872506b27415150ad1b5f79363b5baf29aa
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- usps-imis-api (0.6.11)
4
+ usps-imis-api (0.6.12)
5
5
  activesupport (~> 8.0)
6
6
 
7
7
  GEM
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
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Usps
4
4
  module Imis
5
- VERSION = '0.6.11'
5
+ VERSION = '0.6.12'
6
6
  end
7
7
  end
@@ -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
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: usps-imis-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.11
4
+ version: 0.6.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julian Fiander