usps-imis-api 0.6.14 → 0.6.15
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/.rubocop.yml +2 -0
- data/Gemfile.lock +1 -1
- data/Readme.md +1 -1
- data/lib/usps/imis/business_object.rb +16 -15
- data/lib/usps/imis/error/response_error.rb +1 -1
- data/lib/usps/imis/requests.rb +1 -1
- data/lib/usps/imis/version.rb +1 -1
- data/spec/lib/usps/imis/business_object_spec.rb +2 -2
- data/spec/lib/usps/imis/config_spec.rb +1 -1
- data/spec/lib/usps/imis/panel/education_spec.rb +0 -1
- data/spec/lib/usps/imis/panel/vsc_spec.rb +1 -1
- 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: 1ece5a19e925e1ef85b9e54b1d8fe7139c4015b0a1fe7ddcb602e172fbb50cab
|
|
4
|
+
data.tar.gz: 723eb4ccbf3b0c86c3f309c83d32d2b892420c688fd1f8aa2bfedcc47d61d2a9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fbca9aeda6a7a4e7fc6701c2767da349ab49e6b9126b36ea0a6225b4c18b2c7970dc22390ddabfbf571411d76b86ab2b37bbde79f471f4b5a3ceba9d271fdd5c
|
|
7
|
+
data.tar.gz: 3b09c75a050ad32e8077d9bc07772d91bb37a7e4628734c0159cb05a206f7f9128059532e22e90f014f07041f2ac87d0d37c2d7878845069c1220ec221cb4e69
|
data/.rubocop.yml
CHANGED
data/Gemfile.lock
CHANGED
data/Readme.md
CHANGED
|
@@ -237,7 +237,7 @@ api.with(31092) do
|
|
|
237
237
|
# These requests are identical:
|
|
238
238
|
|
|
239
239
|
on('ABC_ASC_Individual_Demog') do
|
|
240
|
-
get['Properties']['$values'].find {
|
|
240
|
+
get['Properties']['$values'].find { it['Name'] == 'TotMMS' }['Value']['$value']
|
|
241
241
|
end
|
|
242
242
|
|
|
243
243
|
on('ABC_ASC_Individual_Demog') { get_field('TotMMS') }
|
|
@@ -49,7 +49,7 @@ module Usps
|
|
|
49
49
|
#
|
|
50
50
|
def get_field(name)
|
|
51
51
|
values = get['Properties']['$values']
|
|
52
|
-
value = values.find {
|
|
52
|
+
value = values.find { it['Name'] == name }['Value']
|
|
53
53
|
|
|
54
54
|
value.is_a?(String) ? value : value['$value']
|
|
55
55
|
end
|
|
@@ -69,6 +69,8 @@ module Usps
|
|
|
69
69
|
|
|
70
70
|
# Update a business object for the current member
|
|
71
71
|
#
|
|
72
|
+
# Any properties not included will be left unmodified
|
|
73
|
+
#
|
|
72
74
|
# @param body [Hash] Full raw API object data
|
|
73
75
|
#
|
|
74
76
|
# @return [Hash] Response data from the API
|
|
@@ -133,22 +135,21 @@ module Usps
|
|
|
133
135
|
existing = get
|
|
134
136
|
|
|
135
137
|
JSON.parse(JSON.dump(existing)).tap do |updated|
|
|
136
|
-
#
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
#
|
|
140
|
-
updated['Properties']['$values'] = []
|
|
138
|
+
# Preserve the iMIS ID, as well as the Ordinal (if present)
|
|
139
|
+
updated['Properties']['$values'], properties =
|
|
140
|
+
existing['Properties']['$values'].partition { %w[ID Ordinal].include?(it['Name']) }
|
|
141
141
|
|
|
142
142
|
# Iterate through all existing fields
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
143
|
+
properties.each do |value|
|
|
144
|
+
# Skip unmodified fields
|
|
145
|
+
next unless fields.keys.include?(value['Name'])
|
|
146
|
+
|
|
147
|
+
# Strings are not wrapped in the type definition structure
|
|
148
|
+
new_value = fields[value['Name']]
|
|
149
|
+
if new_value.is_a?(String)
|
|
150
|
+
value['Value'] = new_value
|
|
151
|
+
else
|
|
152
|
+
value['Value']['$value'] = new_value
|
|
152
153
|
end
|
|
153
154
|
|
|
154
155
|
# Add the completed field with the updated value
|
data/lib/usps/imis/requests.rb
CHANGED
|
@@ -20,7 +20,7 @@ module Usps
|
|
|
20
20
|
#
|
|
21
21
|
def authorize(request)
|
|
22
22
|
authenticate if token_expiration < Time.now
|
|
23
|
-
request.tap {
|
|
23
|
+
request.tap { it.add_field('Authorization', "Bearer #{token}") }
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
def submit(uri, request)
|
data/lib/usps/imis/version.rb
CHANGED
|
@@ -10,7 +10,7 @@ describe Usps::Imis::BusinessObject do
|
|
|
10
10
|
{
|
|
11
11
|
'Properties' => {
|
|
12
12
|
'$values' => [
|
|
13
|
-
{ 'Name' => '
|
|
13
|
+
{ 'Name' => 'ID', 'Value' => { '$value' => '31092' } },
|
|
14
14
|
{ 'Name' => 'Stub Integer', 'Value' => { '$value' => 43 } },
|
|
15
15
|
{ 'Name' => 'Stub String', 'Value' => 'other' }
|
|
16
16
|
]
|
|
@@ -22,7 +22,7 @@ describe Usps::Imis::BusinessObject do
|
|
|
22
22
|
allow(business_object).to receive(:get).and_return({
|
|
23
23
|
'Properties' => {
|
|
24
24
|
'$values' => [
|
|
25
|
-
{ 'Name' => '
|
|
25
|
+
{ 'Name' => 'ID', 'Value' => { '$value' => '31092' } },
|
|
26
26
|
{ 'Name' => 'Stub Integer', 'Value' => { '$value' => 42 } },
|
|
27
27
|
{ 'Name' => 'Stub String', 'Value' => 'something' }
|
|
28
28
|
]
|
|
@@ -29,7 +29,7 @@ describe Usps::Imis::Panel::Vsc do
|
|
|
29
29
|
ordinal = new_record['Identity']['IdentityElements']['$values'][1]
|
|
30
30
|
|
|
31
31
|
update_result = vsc.update(details.merge(count: 43, ordinal:))
|
|
32
|
-
updated = update_result['Properties']['$values'].find {
|
|
32
|
+
updated = update_result['Properties']['$values'].find { it['Name'] == 'Quantity' }
|
|
33
33
|
expect(updated['Value']['$value']).to eq(43)
|
|
34
34
|
|
|
35
35
|
expect(vsc.destroy(ordinal)).to eq('')
|