my_john_deere_api 0.10.4 → 0.11.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
  SHA256:
3
- metadata.gz: 72ddccd2f9502d843d1a8ce2f2e6fad96878be79b4e5112308919aa3b1d2cb64
4
- data.tar.gz: 5ebf4fb5c2b1aefe3e1de694fe88e3be3352f3e4c31be2f08f4b8f520bf1783c
3
+ metadata.gz: e13eed76fb39d6bd0905710f9fdfdd5ce55d9a942f241adcd757cb5390ba3107
4
+ data.tar.gz: f14973d9655407f66123cf3829bfa37e3d4a8a75f5221cf6745d4b2c64461fbb
5
5
  SHA512:
6
- metadata.gz: 39b8a0ee86f828d3620b57f9d72dfef835f7f4165934b38e783d139617240ad49675dad55ac84b3f3611317e7bbaab968263c20d1d29fd859b0a11025a427dac
7
- data.tar.gz: 5bb651e3e0ba676f3aead4aca0ac2d7e18b1115b2cda08493fdfada09af30b1591f9ba04738f500d2e100004c9a26ce055ac33c550469ce6f56ea401a9739261
6
+ metadata.gz: 69774e1c0b8cc27697a7d6c51a922f84559e9cfaf3e0b799f86d6abb688422aa3807bbda82512bcf595803eef24b848fe1b26729262bdaa1277dd533425e1843
7
+ data.tar.gz: f5d9513614d9d5230883668364841b85a28d3603e0eff718065de0bf81d9d38c047a13f639ba6355d39c3b85d2904d6b473959c4e743d506df26da81edb55c47
@@ -23,5 +23,12 @@ module MyJohnDeereApi::Request
23
23
  attributes.merge!(organization_id: associations[:organization])
24
24
  Create::Asset.new(accessor, attributes).object
25
25
  end
26
+
27
+ ##
28
+ # Retrieve an asset from JD
29
+
30
+ def find(asset_id)
31
+ Individual::Asset.new(accessor, asset_id).object
32
+ end
26
33
  end
27
34
  end
@@ -0,0 +1,19 @@
1
+ require 'json'
2
+
3
+ module MyJohnDeereApi::Request
4
+ class Individual::Asset < Individual::Base
5
+ ##
6
+ # The resource path for the first page in the collection
7
+
8
+ def resource
9
+ "/assets/#{id}"
10
+ end
11
+
12
+ ##
13
+ # This is the class used to model the data
14
+
15
+ def model
16
+ MyJohnDeereApi::Model::Asset
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,43 @@
1
+ require 'json'
2
+
3
+ module MyJohnDeereApi::Request
4
+ class Individual::Base
5
+ attr_reader :accessor, :id, :response
6
+
7
+ ##
8
+ # Initialize with an accessor, and asset id
9
+
10
+ def initialize(accessor, id)
11
+ @accessor = accessor
12
+ @id = id
13
+ end
14
+
15
+ ##
16
+ # The object being requested, an asset in this case
17
+
18
+ def object
19
+ return @object if defined?(@object)
20
+
21
+ request unless response
22
+ @object = model.new(JSON.parse(response.body), accessor)
23
+ end
24
+
25
+ private
26
+
27
+ ##
28
+ # Make the request
29
+
30
+ def request
31
+ @response = accessor.get(resource, headers)
32
+ end
33
+
34
+ ##
35
+ # Headers for GET request
36
+
37
+ def headers
38
+ @headers ||= {
39
+ 'Accept' => 'application/vnd.deere.axiom.v3+json',
40
+ }
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,4 @@
1
+ module MyJohnDeereApi::Request::Individual
2
+ autoload :Base, 'my_john_deere_api/request/individual/base'
3
+ autoload :Asset, 'my_john_deere_api/request/individual/asset'
4
+ end
@@ -1,4 +1,5 @@
1
1
  module MyJohnDeereApi::Request
2
2
  autoload :Collection, 'my_john_deere_api/request/collection'
3
3
  autoload :Create, 'my_john_deere_api/request/create'
4
+ autoload :Individual, 'my_john_deere_api/request/individual'
4
5
  end
@@ -1,3 +1,3 @@
1
1
  module MyJohnDeereApi
2
- VERSION='0.10.4'
2
+ VERSION='0.11.0'
3
3
  end
@@ -73,6 +73,15 @@ describe 'MyJohnDeereApi::Request::Collection::Assets' do
73
73
  end
74
74
  end
75
75
 
76
+ describe '#find(asset_id)' do
77
+ let(:asset_id) { '123' }
78
+
79
+ it 'retrieves the asset' do
80
+ asset = VCR.use_cassette('get_asset') { collection.find(asset_id) }
81
+ assert_kind_of JD::Model::Asset, asset
82
+ end
83
+ end
84
+
76
85
  describe '#count' do
77
86
  let(:server_response) do
78
87
  contents = File.read('test/support/vcr/get_assets.yml')
@@ -0,0 +1,35 @@
1
+ require 'support/helper'
2
+ require 'yaml'
3
+ require 'json'
4
+
5
+ describe 'MyJohnDeereApi::Request::Individual::Asset' do
6
+ let(:asset_id) { '123' }
7
+ let(:client) { JD::Client.new(API_KEY, API_SECRET, environment: :sandbox, access: [ACCESS_TOKEN, ACCESS_SECRET]) }
8
+ let(:accessor) { VCR.use_cassette('catalog') { client.send(:accessor) } }
9
+ let(:object) { JD::Request::Individual::Asset.new(accessor, asset_id) }
10
+
11
+ inherits_from JD::Request::Individual::Base
12
+
13
+ describe '#initialize(access_token, asset_id)' do
14
+ it 'accepts an access token' do
15
+ assert_equal accessor, object.accessor
16
+ end
17
+
18
+ it 'accepts asset_id as id' do
19
+ assert_equal asset_id, object.id
20
+ end
21
+ end
22
+
23
+ describe '#resource' do
24
+ it 'returns /assets/<asset_id>' do
25
+ assert_equal "/assets/#{asset_id}", object.resource
26
+ end
27
+ end
28
+
29
+ describe '#object' do
30
+ it 'returns all records' do
31
+ asset = VCR.use_cassette('get_asset') { object.object }
32
+ assert_kind_of JD::Model::Asset, asset
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,20 @@
1
+ require 'support/helper'
2
+ require 'yaml'
3
+ require 'json'
4
+
5
+ describe 'MyJohnDeereApi::Request::Individual::Base' do
6
+ let(:asset_id) { '123' }
7
+ let(:client) { JD::Client.new(API_KEY, API_SECRET, environment: :sandbox, access: [ACCESS_TOKEN, ACCESS_SECRET]) }
8
+ let(:accessor) { VCR.use_cassette('catalog') { client.send(:accessor) } }
9
+ let(:object) { JD::Request::Individual::Base.new(accessor, asset_id) }
10
+
11
+ describe '#initialize(access_token, asset_id)' do
12
+ it 'accepts an access token' do
13
+ assert_equal accessor, object.accessor
14
+ end
15
+
16
+ it 'accepts asset_id as id' do
17
+ assert_equal asset_id, object.id
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,13 @@
1
+ require 'support/helper'
2
+
3
+ describe 'MyJohnDeereApi::Request::Individual' do
4
+ describe 'loading dependencies' do
5
+ it 'loads Request::Individual::Base' do
6
+ assert JD::Request::Individual::Base
7
+ end
8
+
9
+ it 'loads Request::Individual::Asset' do
10
+ assert JD::Request::Individual::Asset
11
+ end
12
+ end
13
+ end
@@ -9,5 +9,9 @@ describe 'MyJohnDeereApi::Request' do
9
9
  it 'loads Request::Create' do
10
10
  assert JD::Request::Create
11
11
  end
12
+
13
+ it 'loads Request::Individuaal' do
14
+ assert JD::Request::Individual
15
+ end
12
16
  end
13
17
  end
@@ -0,0 +1,47 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://sandboxapi.deere.com/platform/assets/123
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - application/vnd.deere.axiom.v3+json
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ User-Agent:
15
+ - OAuth gem v0.5.4
16
+ Authorization:
17
+ - OAuth oauth_consumer_key="johndeere-wgmADngYCRmfpEbVgSyc709wnyRux5J7PAv8SE7B",
18
+ oauth_nonce="wpd9q6hPqIv2ILaJ7pysF1N6HLOSthgHDJNDhY4E", oauth_signature="SSCyoTnFLevnU28iQ%2BqArIAprHs%3D",
19
+ oauth_signature_method="HMAC-SHA1", oauth_timestamp="1580161758", oauth_token="47bbb9c9-41a8-4bec-8127-e3c5760af2f6",
20
+ oauth_version="1.0"
21
+ response:
22
+ status:
23
+ code: 200
24
+ message: OK
25
+ headers:
26
+ Date:
27
+ - Mon, 27 Jan 2020 21:49:18 GMT
28
+ Content-Type:
29
+ - application/vnd.deere.axiom.v3+json;charset=UTF-8
30
+ X-Deere-Handling-Server:
31
+ - ip-10-214-45-211
32
+ X-Frame-Options:
33
+ - SAMEORIGIN
34
+ X-Deere-Elapsed-Ms:
35
+ - '60'
36
+ Cache-Control:
37
+ - no-store
38
+ Content-Language:
39
+ - en-US
40
+ Transfer-Encoding:
41
+ - chunked
42
+ body:
43
+ encoding: ASCII-8BIT
44
+ string: '{"@type":"ContributedAsset","title":"Flex (Watermark)","assetCategory":"DEVICE","assetType":"SENSOR","assetSubType":"ENVIRONMENTAL","lastModifiedDate":"2019-09-20T21:13:38.232Z","id":"029c288a-14d9-459f-8ee6-b4e840e672a1","links":[{"@type":"Link","rel":"self","uri":"https://sandboxapi.deere.com/platform/assets/029c288a-14d9-459f-8ee6-b4e840e672a1"},{"@type":"Link","rel":"contributionDefinition","uri":"https://sandboxapi.deere.com/platform/contributionDefinitions/d93611c7-6f74-474f-9569-2cf88f866a32"},{"@type":"Link","rel":"organization","uri":"https://sandboxapi.deere.com/platform/organizations/444563"},{"@type":"Link","rel":"locations","uri":"https://sandboxapi.deere.com/platform/assets/029c288a-14d9-459f-8ee6-b4e840e672a1/locations"},{"@type":"Link","rel":"lastKnownLocation","uri":"https://sandboxapi.deere.com/platform/assets/029c288a-14d9-459f-8ee6-b4e840e672a1/locations?lastKnown=true"}]}'
45
+ http_version:
46
+ recorded_at: Mon, 27 Jan 2020 21:49:18 GMT
47
+ recorded_with: VCR 5.0.0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: my_john_deere_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.4
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jaime Bellmyer
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-01-26 00:00:00.000000000 Z
12
+ date: 2020-01-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: vcr
@@ -132,6 +132,9 @@ files:
132
132
  - lib/my_john_deere_api/request/create/asset.rb
133
133
  - lib/my_john_deere_api/request/create/asset_location.rb
134
134
  - lib/my_john_deere_api/request/create/base.rb
135
+ - lib/my_john_deere_api/request/individual.rb
136
+ - lib/my_john_deere_api/request/individual/asset.rb
137
+ - lib/my_john_deere_api/request/individual/base.rb
135
138
  - lib/my_john_deere_api/version.rb
136
139
  - test/lib/my_john_deere_api/authorize_test.rb
137
140
  - test/lib/my_john_deere_api/client_test.rb
@@ -161,6 +164,9 @@ files:
161
164
  - test/lib/my_john_deere_api/request/create/asset_test.rb
162
165
  - test/lib/my_john_deere_api/request/create/base_test.rb
163
166
  - test/lib/my_john_deere_api/request/create_test.rb
167
+ - test/lib/my_john_deere_api/request/individual/asset_test.rb
168
+ - test/lib/my_john_deere_api/request/individual/base_test.rb
169
+ - test/lib/my_john_deere_api/request/individual_test.rb
164
170
  - test/lib/my_john_deere_api/request_test.rb
165
171
  - test/lib/my_john_deere_api/version_test.rb
166
172
  - test/my_john_deere_api_test.rb
@@ -169,6 +175,7 @@ files:
169
175
  - test/support/vcr/catalog.yml
170
176
  - test/support/vcr/delete_asset.yml
171
177
  - test/support/vcr/get_access_token.yml
178
+ - test/support/vcr/get_asset.yml
172
179
  - test/support/vcr/get_asset_locations.yml
173
180
  - test/support/vcr/get_assets.yml
174
181
  - test/support/vcr/get_fields.yml