gman_client 0.0.10 → 0.2.0

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: 7c1961bbbdfb8456af992da97bdc4c62be5c55f6
4
- data.tar.gz: 698d78209642e4be8dce4959929b033f196fff3f
3
+ metadata.gz: 0aa6d21aa0d0f6fe345c586c397140edcf677c11
4
+ data.tar.gz: 84497c9c1c9b0bec166d29f1a40625c268b06318
5
5
  SHA512:
6
- metadata.gz: da90786bdb30d56ebc16cc169931ef4fbe2eec28df962f92833db7e9b47d4f4fee772b42d1d5a39f4d62896825b016a177d821ba45fdff201bcf49dec8cb28b3
7
- data.tar.gz: fbca6812bef81e0265f6fa84f8de67b82244e8c55a07d12032b0ccd915b7adddebfcfba4801fb120d4ca4c3cdc8c160caba0715de008aacd965d43bc8ba310fc
6
+ metadata.gz: bec26eb20558386e4367b87a82a34dbfdd26cbab4f82c6d4f3e4a7dc475541ad102e0e598644b267209c5273340576f276d942e9eea9e474926a31830cb678e6
7
+ data.tar.gz: 800098bb6f74c540a2e484a6e1387d092c4e6f82fe51eeb9309a47c163bd22a0854ef6e5442ddf0b5fddac448b713e59994ccac92f058635b8f77089d4e3a682
data/.gitignore CHANGED
@@ -4,6 +4,7 @@
4
4
  /_yardoc/
5
5
  /coverage/
6
6
  /doc/
7
+ /pkg
7
8
  /spec/reports/
8
9
  /tmp/
9
10
  .rspec
data/lib/gman/client.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  module Gman
2
2
  class Client
3
+ include GmanClient::Api::CustomerContracts
3
4
  include GmanClient::Api::Orders
5
+ include GmanClient::Api::HealthCheck
4
6
  include GmanClient::CommodityMerchandising::Contracts
5
7
  include GmanClient::Utility
6
8
 
@@ -0,0 +1,20 @@
1
+ module GmanClient
2
+ module Api
3
+ module CustomerContracts
4
+ # Retrieves customer contracts
5
+ #
6
+ # @param [Hash] parameters to filter the orders
7
+ def customer_contracts(filter_params)
8
+ response = attempt(@retry_attempts) do
9
+ request
10
+ .api
11
+ .v1
12
+ .customer_contracts
13
+ .get(params: { q: filter_params })
14
+ end
15
+
16
+ response.map(&:to_h)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,13 @@
1
+ module GmanClient
2
+ module Api
3
+ # HealthCheck API
4
+ module HealthCheck
5
+ # Retrieve a health check
6
+ def health_check
7
+ response = request.api.v1.health_check.get
8
+
9
+ response.to_h[:health_check] == 'Passed'
10
+ end
11
+ end
12
+ end
13
+ end
@@ -1,3 +1,3 @@
1
1
  module GmanClient
2
- VERSION = '0.0.10'.freeze
2
+ VERSION = '0.2.0'.freeze
3
3
  end
data/lib/gman_client.rb CHANGED
@@ -1,4 +1,6 @@
1
+ require 'gman_client/api/customer_contracts'
1
2
  require 'gman_client/api/orders'
3
+ require 'gman_client/api/health_check'
2
4
  require 'gman_client/commodity_merchandising/contracts'
3
5
  require 'gman_client/utility'
4
6
  require 'gman_client/version'
@@ -0,0 +1,98 @@
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
+
15
+ let(:customer_contracts_hash) do
16
+ [
17
+ {
18
+ contract_id: '50000000',
19
+ contract_type: 'Sale',
20
+ customer_id: '00010000',
21
+ location_id: '01'
22
+ },
23
+ {
24
+ contract_id: '50000100',
25
+ contract_type: 'Sale',
26
+ customer_id: '00010000',
27
+ location_id: '01'
28
+ }
29
+ ]
30
+ end
31
+
32
+ describe '#customer_contracts' do
33
+ let(:described) { client.customer_contracts(params) }
34
+ let(:stubbed_url) { 'http://test.local' }
35
+
36
+ context 'when customer contracts are found' do
37
+ before do
38
+ stub_request(:post, "#{stubbed_url}/oauth/token")
39
+ .to_return(
40
+ body: { access_token: access_token }.to_json, status: 200
41
+ )
42
+ stub_request(
43
+ :get, "#{stubbed_url}/api/v1/customer_contracts.json?#{query_string}"
44
+ )
45
+ .to_return(body: customer_contracts_hash.to_json, status: 200)
46
+ end
47
+ let(:access_token) { SecureRandom.uuid }
48
+ let(:params) do
49
+ {
50
+ customer_id: '00010000'
51
+ }
52
+ end
53
+ let(:query_string) do
54
+ params.map { |k, v| "q[#{k}]=#{v}" }.join('&')
55
+ end
56
+
57
+ describe 'response' do
58
+ subject { described }
59
+
60
+ it { is_expected.to be_kind_of(Array) }
61
+ its(:size) { is_expected.to eq 2 }
62
+
63
+ describe 'first match' do
64
+ subject { described[0] }
65
+
66
+ its([:contract_id]) do
67
+ is_expected.to eq customer_contracts_hash[0][:contract_id]
68
+ end
69
+ its([:contract_type]) do
70
+ is_expected.to eq customer_contracts_hash[0][:contract_type]
71
+ end
72
+ its([:customer_id]) do
73
+ is_expected.to eq customer_contracts_hash[0][:customer_id]
74
+ end
75
+ its([:location_id]) do
76
+ is_expected.to eq customer_contracts_hash[0][:location_id]
77
+ end
78
+ end
79
+ describe 'second match' do
80
+ subject { described[1] }
81
+
82
+ its([:contract_id]) do
83
+ is_expected.to eq customer_contracts_hash[1][:contract_id]
84
+ end
85
+ its([:contract_type]) do
86
+ is_expected.to eq customer_contracts_hash[1][:contract_type]
87
+ end
88
+ its([:customer_id]) do
89
+ is_expected.to eq customer_contracts_hash[1][:customer_id]
90
+ end
91
+ its([:location_id]) do
92
+ is_expected.to eq customer_contracts_hash[1][:location_id]
93
+ end
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,52 @@
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
+
15
+ describe '#health_check' do
16
+ let(:described) { client.health_check }
17
+ let(:access_token) { SecureRandom.uuid }
18
+ let(:stubbed_url) { 'http://test.local' }
19
+
20
+ before do
21
+ stub_request(:post, "#{stubbed_url}/oauth/token")
22
+ .to_return(
23
+ body: { access_token: access_token }.to_json, status: 200
24
+ )
25
+ stub_request(
26
+ :get, "#{stubbed_url}/api/v1/health_check.json"
27
+ )
28
+ .to_return(body: health_check_hash.to_json, status: 200)
29
+ end
30
+ let(:access_token) { SecureRandom.uuid }
31
+
32
+ subject do
33
+ described
34
+ end
35
+
36
+ context 'when the health check is successful' do
37
+ let(:health_check_hash) { { health_check: 'Passed' } }
38
+
39
+ it 'should be true' do
40
+ expect(subject).to eq(true)
41
+ end
42
+ end
43
+
44
+ context 'when the health check fails' do
45
+ let(:health_check_hash) { { health_check: 'Failed' } }
46
+
47
+ it 'should be false' do
48
+ expect(subject).to eq(false)
49
+ end
50
+ end
51
+ end
52
+ end
@@ -85,7 +85,7 @@ RSpec.describe Gman::Client do
85
85
  }
86
86
  end
87
87
 
88
- it 'should respond with a Hash' do
88
+ it 'should respond with an Array' do
89
89
  expect(subject).to be_kind_of(Array)
90
90
  end
91
91
 
data/spec/spec_helper.rb CHANGED
@@ -1,11 +1,9 @@
1
- require 'codeclimate-test-reporter'
2
- CodeClimate::TestReporter.start
3
-
4
1
  require 'rspec/its'
5
2
  require 'spec_helper'
6
3
  require 'gman_client'
7
4
  require 'httparty'
8
5
  require 'webmock'
6
+ require 'securerandom'
9
7
 
10
8
  Dir[File.join(GmanClient.root, 'spec/support/**/*.rb')].each { |f| require f }
11
9
 
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.10
4
+ version: 0.2.0
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-10-17 00:00:00.000000000 Z
12
+ date: 2016-12-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: vcr
@@ -171,19 +171,15 @@ files:
171
171
  - gman_client.gemspec
172
172
  - lib/gman/client.rb
173
173
  - lib/gman_client.rb
174
+ - lib/gman_client/api/customer_contracts.rb
175
+ - lib/gman_client/api/health_check.rb
174
176
  - lib/gman_client/api/orders.rb
175
177
  - lib/gman_client/commodity_merchandising/contracts.rb
176
178
  - lib/gman_client/inventory/items.rb
177
179
  - lib/gman_client/utility.rb
178
180
  - lib/gman_client/version.rb
179
- - pkg/gman_client-0.0.1.gem
180
- - pkg/gman_client-0.0.2.gem
181
- - pkg/gman_client-0.0.3.gem
182
- - pkg/gman_client-0.0.4.gem
183
- - pkg/gman_client-0.0.5.gem
184
- - pkg/gman_client-0.0.7.gem
185
- - pkg/gman_client-0.0.8.gem
186
- - pkg/gman_client-0.0.9.gem
181
+ - spec/lib/client/customer_contracts_spec.rb
182
+ - spec/lib/client/health_check_spec.rb
187
183
  - spec/lib/client/order_spec.rb
188
184
  - spec/lib/client/orders_spec.rb
189
185
  - spec/lib/client_contracts_spec.rb
@@ -221,11 +217,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
221
217
  version: '0'
222
218
  requirements: []
223
219
  rubyforge_project:
224
- rubygems_version: 2.6.4
220
+ rubygems_version: 2.4.8
225
221
  signing_key:
226
222
  specification_version: 4
227
223
  summary: Grossman API Client for Ruby
228
224
  test_files:
225
+ - spec/lib/client/customer_contracts_spec.rb
226
+ - spec/lib/client/health_check_spec.rb
229
227
  - spec/lib/client/order_spec.rb
230
228
  - spec/lib/client/orders_spec.rb
231
229
  - spec/lib/client_contracts_spec.rb
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file