gman_client 0.0.9 → 0.0.10
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7c1961bbbdfb8456af992da97bdc4c62be5c55f6
|
4
|
+
data.tar.gz: 698d78209642e4be8dce4959929b033f196fff3f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da90786bdb30d56ebc16cc169931ef4fbe2eec28df962f92833db7e9b47d4f4fee772b42d1d5a39f4d62896825b016a177d821ba45fdff201bcf49dec8cb28b3
|
7
|
+
data.tar.gz: fbca6812bef81e0265f6fa84f8de67b82244e8c55a07d12032b0ccd915b7adddebfcfba4801fb120d4ca4c3cdc8c160caba0715de008aacd965d43bc8ba310fc
|
@@ -16,6 +16,21 @@ module GmanClient
|
|
16
16
|
|
17
17
|
response.to_h
|
18
18
|
end
|
19
|
+
|
20
|
+
# Retrieves a number of orders
|
21
|
+
#
|
22
|
+
# @param [Hash] parameters to filter the orders
|
23
|
+
def orders(filter_params)
|
24
|
+
response = attempt(@retry_attempts) do
|
25
|
+
request
|
26
|
+
.api
|
27
|
+
.v1
|
28
|
+
.orders
|
29
|
+
.get(params: filter_params)
|
30
|
+
end
|
31
|
+
|
32
|
+
response.map(&:to_h)
|
33
|
+
end
|
19
34
|
end
|
20
35
|
end
|
21
36
|
end
|
data/lib/gman_client/version.rb
CHANGED
Binary file
|
@@ -11,20 +11,19 @@ RSpec.describe Gman::Client do
|
|
11
11
|
client_secret: 'client_secret'
|
12
12
|
)
|
13
13
|
end
|
14
|
-
|
15
14
|
let(:orders_hash) do
|
16
15
|
[
|
17
16
|
{
|
18
|
-
order_number:
|
19
|
-
order_key:
|
17
|
+
order_number: 100_001,
|
18
|
+
order_key: 101,
|
20
19
|
quantity_shipped: 5.0,
|
21
20
|
ship_date: '2000-01-01',
|
22
21
|
warehouse_id: 1,
|
23
22
|
uuid: '949085E3-6FC3-4240-BC86-2940D543DB35'
|
24
23
|
},
|
25
24
|
{
|
26
|
-
order_number:
|
27
|
-
order_key:
|
25
|
+
order_number: 100_002,
|
26
|
+
order_key: 102,
|
28
27
|
quantity_shipped: 5.0,
|
29
28
|
ship_date: '2000-01-01',
|
30
29
|
warehouse_id: 1,
|
@@ -0,0 +1,110 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'webmock'
|
3
|
+
|
4
|
+
RSpec.describe Gman::Client do
|
5
|
+
include WebMock::API
|
6
|
+
|
7
|
+
let(:client) do
|
8
|
+
Gman::Client.new(
|
9
|
+
url: stubbed_url,
|
10
|
+
client_id: 'client_id',
|
11
|
+
client_secret: 'client_secret'
|
12
|
+
)
|
13
|
+
end
|
14
|
+
let(:orders_hash) do
|
15
|
+
[
|
16
|
+
{
|
17
|
+
order_number: 100_001,
|
18
|
+
order_key: 100,
|
19
|
+
quantity_shipped: 5.0,
|
20
|
+
ship_date: '2000-01-01',
|
21
|
+
warehouse_id: 1,
|
22
|
+
uuid: '949085E3-6FC3-4240-BC86-2940D543DB35'
|
23
|
+
},
|
24
|
+
{
|
25
|
+
order_number: 100_002,
|
26
|
+
order_key: 100,
|
27
|
+
quantity_shipped: 5.0,
|
28
|
+
ship_date: '2000-01-01',
|
29
|
+
warehouse_id: 1,
|
30
|
+
uuid: '1AE4C0FD-B1B3-4381-ACF2-62025A6F0D8C'
|
31
|
+
}
|
32
|
+
]
|
33
|
+
end
|
34
|
+
|
35
|
+
describe '#orders' do
|
36
|
+
let(:described) { client.orders(params) }
|
37
|
+
let(:access_token) { SecureRandom.uuid }
|
38
|
+
let(:order_hash) { orders_hash.sample }
|
39
|
+
let(:stubbed_url) { 'http://test.local' }
|
40
|
+
let(:params) { {} }
|
41
|
+
|
42
|
+
subject do
|
43
|
+
described
|
44
|
+
end
|
45
|
+
|
46
|
+
context 'when the authorization fails' do
|
47
|
+
before do
|
48
|
+
stub_request(:post, "#{stubbed_url}/oauth/token")
|
49
|
+
.to_return(response)
|
50
|
+
end
|
51
|
+
|
52
|
+
let(:response) do
|
53
|
+
{
|
54
|
+
body: {
|
55
|
+
error: 'invalid_client',
|
56
|
+
error_description: '...'
|
57
|
+
}.to_json,
|
58
|
+
status: 401
|
59
|
+
}
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'should raise RestClient::Unauthorized' do
|
63
|
+
expect { subject }.to raise_error(RestClient::Unauthorized)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
context 'when an order is found' do
|
68
|
+
before do
|
69
|
+
stub_request(:post, "#{stubbed_url}/oauth/token")
|
70
|
+
.to_return(
|
71
|
+
body: { access_token: access_token }.to_json, status: 200
|
72
|
+
)
|
73
|
+
|
74
|
+
query_string = params.map { |k, v| "#{k}=#{v}" }.join('&')
|
75
|
+
stub_request(
|
76
|
+
:get, "#{stubbed_url}/api/v1/orders.json?#{query_string}"
|
77
|
+
)
|
78
|
+
.to_return(body: [order_hash].to_json, status: 200)
|
79
|
+
end
|
80
|
+
let(:access_token) { SecureRandom.uuid }
|
81
|
+
let(:params) do
|
82
|
+
{
|
83
|
+
warehouse_id_eq: order_hash[:warehouse_id],
|
84
|
+
order_number_eq: order_hash[:order_number]
|
85
|
+
}
|
86
|
+
end
|
87
|
+
|
88
|
+
it 'should respond with a Hash' do
|
89
|
+
expect(subject).to be_kind_of(Array)
|
90
|
+
end
|
91
|
+
|
92
|
+
describe 'response' do
|
93
|
+
its(:size) { is_expected.to eq 1 }
|
94
|
+
|
95
|
+
describe 'first match' do
|
96
|
+
subject { described[0] }
|
97
|
+
|
98
|
+
its([:order_number]) { is_expected.to eq order_hash[:order_number] }
|
99
|
+
its([:order_key]) { is_expected.to eq order_hash[:order_key] }
|
100
|
+
its([:quantity_shipped]) do
|
101
|
+
is_expected.to eq order_hash[:quantity_shipped]
|
102
|
+
end
|
103
|
+
its([:ship_date]) { is_expected.to eq order_hash[:ship_date] }
|
104
|
+
its([:warehouse_id]) { is_expected.to eq order_hash[:warehouse_id] }
|
105
|
+
its([:uuid]) { is_expected.to eq order_hash[:uuid] }
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gman_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MichaelAChrisco
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-10-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: vcr
|
@@ -183,8 +183,10 @@ files:
|
|
183
183
|
- pkg/gman_client-0.0.5.gem
|
184
184
|
- pkg/gman_client-0.0.7.gem
|
185
185
|
- pkg/gman_client-0.0.8.gem
|
186
|
+
- pkg/gman_client-0.0.9.gem
|
187
|
+
- spec/lib/client/order_spec.rb
|
188
|
+
- spec/lib/client/orders_spec.rb
|
186
189
|
- spec/lib/client_contracts_spec.rb
|
187
|
-
- spec/lib/client_orders_spec.rb
|
188
190
|
- spec/lib/driver_commission_history_response_spec.rb
|
189
191
|
- spec/lib/driver_response_spec.rb
|
190
192
|
- spec/lib/inventory_item_response_spec.rb
|
@@ -219,13 +221,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
219
221
|
version: '0'
|
220
222
|
requirements: []
|
221
223
|
rubyforge_project:
|
222
|
-
rubygems_version: 2.4
|
224
|
+
rubygems_version: 2.6.4
|
223
225
|
signing_key:
|
224
226
|
specification_version: 4
|
225
227
|
summary: Grossman API Client for Ruby
|
226
228
|
test_files:
|
229
|
+
- spec/lib/client/order_spec.rb
|
230
|
+
- spec/lib/client/orders_spec.rb
|
227
231
|
- spec/lib/client_contracts_spec.rb
|
228
|
-
- spec/lib/client_orders_spec.rb
|
229
232
|
- spec/lib/driver_commission_history_response_spec.rb
|
230
233
|
- spec/lib/driver_response_spec.rb
|
231
234
|
- spec/lib/inventory_item_response_spec.rb
|