my_john_deere_api 0.5.2 → 0.5.3
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/lib/my_john_deere_api/client.rb +19 -0
- data/lib/my_john_deere_api/request.rb +1 -0
- data/lib/my_john_deere_api/request/create.rb +5 -0
- data/lib/my_john_deere_api/request/create/asset.rb +10 -0
- data/lib/my_john_deere_api/request/create/asset_location.rb +5 -0
- data/lib/my_john_deere_api/request/create/base.rb +5 -0
- data/lib/my_john_deere_api/version.rb +1 -1
- data/test/lib/my_john_deere_api/client_test.rb +49 -0
- data/test/lib/my_john_deere_api/request/create/asset_location_test.rb +10 -0
- data/test/lib/my_john_deere_api/request/create/asset_test.rb +16 -0
- data/test/lib/my_john_deere_api/request/create/base_test.rb +10 -0
- data/test/lib/my_john_deere_api/request/create_test.rb +17 -0
- data/test/lib/my_john_deere_api/request_test.rb +4 -0
- data/test/support/vcr/post_flag_categories.yml +49 -0
- metadata +11 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 601608699538179bc7ddc8d1254e7eb8372330454ec4efca84888124c0e9a6d8
|
4
|
+
data.tar.gz: 283de34a0dc91842e298006a454d10359e8c6e24636fc867c813be6704d32633
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4d722923f80db0b4d69afc7119062ad0b1b60baf8ed1ba7d6cf07b3fcc1316649c9f71372fa37e81864d5b1b9df0886c2d002da364ff2d912b45d8a3bab0f9b6
|
7
|
+
data.tar.gz: 178540687735cd42fdb64bb699eb16eed4f976aee180185789ae5268a16ca18f246a1be5ab730458e5b0ca1bf7ba364ee0c7a6cfa382581354b6821b47022224
|
@@ -41,6 +41,21 @@ class MyJohnDeereApi::Client
|
|
41
41
|
JSON.parse(response.body)
|
42
42
|
end
|
43
43
|
|
44
|
+
##
|
45
|
+
# generic user-specific POSST request method that returns JSON
|
46
|
+
|
47
|
+
def post resource, body
|
48
|
+
resource = resource.to_s
|
49
|
+
resource = "/#{resource}" unless resource =~ /^\//
|
50
|
+
response = accessor.post(resource, body.to_json, post_headers)
|
51
|
+
|
52
|
+
if response.body.size > 0
|
53
|
+
JSON.parse(response.body)
|
54
|
+
else
|
55
|
+
{}
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
44
59
|
##
|
45
60
|
# organizations associated with this access
|
46
61
|
|
@@ -71,4 +86,8 @@ class MyJohnDeereApi::Client
|
|
71
86
|
def headers
|
72
87
|
@headers ||= {accept: 'application/vnd.deere.axiom.v3+json'}
|
73
88
|
end
|
89
|
+
|
90
|
+
def post_headers
|
91
|
+
@post_headers ||= headers.merge({'Content-Type' => 'application/vnd.deere.axiom.v3+json'})
|
92
|
+
end
|
74
93
|
end
|
@@ -69,6 +69,55 @@ describe 'MyJohnDeereApi::Client' do
|
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
72
|
+
describe '#post' do
|
73
|
+
let(:client) { JD::Client.new(API_KEY, API_SECRET, environment: :sandbox, access: [ACCESS_TOKEN, ACCESS_SECRET]) }
|
74
|
+
|
75
|
+
let(:body) do
|
76
|
+
{
|
77
|
+
"@type": "FlagCategory",
|
78
|
+
"categoryTitle": "Mountain Dew",
|
79
|
+
"sourceNode": "7ba95d7a-f798-46d0-9bf9-c39c31bcf984",
|
80
|
+
"links": [
|
81
|
+
{
|
82
|
+
"rel": "contributionDefinition",
|
83
|
+
"uri": "https://sandboxapi.deere.com/platform/contributionDefinitions/#{ENV['CONTRIBUTION_DEFINITION_ID']}"
|
84
|
+
}
|
85
|
+
],
|
86
|
+
"preferred": true
|
87
|
+
}
|
88
|
+
end
|
89
|
+
|
90
|
+
it 'returns the response as a Hash' do
|
91
|
+
VCR.use_cassette('catalog') { client.send(:accessor) }
|
92
|
+
|
93
|
+
response = VCR.use_cassette('post_flag_categories') { client.post("/organizations/#{ENV['ORGANIZATION_ID']}/flagCategories", body) }
|
94
|
+
|
95
|
+
assert_equal Hash.new, response
|
96
|
+
end
|
97
|
+
|
98
|
+
# it 'prepends the leading slash if needed' do
|
99
|
+
# client = JD::Client.new(API_KEY, API_SECRET, environment: :sandbox, access: [ACCESS_TOKEN, ACCESS_SECRET])
|
100
|
+
# VCR.use_cassette('catalog') { client.send(:accessor) }
|
101
|
+
# response = VCR.use_cassette('get_organizations') { client.get('organizations') }
|
102
|
+
#
|
103
|
+
# assert_kind_of Hash, response
|
104
|
+
# assert_kind_of Integer, response['total']
|
105
|
+
# assert response['values'].all?{|value| value['@type'] == 'Organization'}
|
106
|
+
# assert response['values'].all?{|value| value.has_key?('links')}
|
107
|
+
# end
|
108
|
+
#
|
109
|
+
# it 'allows symbols for simple resources' do
|
110
|
+
# client = JD::Client.new(API_KEY, API_SECRET, environment: :sandbox, access: [ACCESS_TOKEN, ACCESS_SECRET])
|
111
|
+
# VCR.use_cassette('catalog') { client.send(:accessor) }
|
112
|
+
# response = VCR.use_cassette('get_organizations') { client.get(:organizations) }
|
113
|
+
#
|
114
|
+
# assert_kind_of Hash, response
|
115
|
+
# assert_kind_of Integer, response['total']
|
116
|
+
# assert response['values'].all?{|value| value['@type'] == 'Organization'}
|
117
|
+
# assert response['values'].all?{|value| value.has_key?('links')}
|
118
|
+
# end
|
119
|
+
end
|
120
|
+
|
72
121
|
describe '#organizations' do
|
73
122
|
it 'returns a collection of organizations for this account' do
|
74
123
|
client = JD::Client.new(API_KEY, API_SECRET, environment: :sandbox, access: [ACCESS_TOKEN, ACCESS_SECRET])
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'support/helper'
|
2
|
+
|
3
|
+
describe 'MyJohnDeereApi::Request::Create::AssetLocation' do
|
4
|
+
let(:client) { JD::Client.new(API_KEY, API_SECRET, environment: :sandbox, access: [ACCESS_TOKEN, ACCESS_SECRET]) }
|
5
|
+
let(:accessor) { VCR.use_cassette('catalog') { client.send(:accessor) } }
|
6
|
+
|
7
|
+
describe '#initialize(access_token, attributes)' do
|
8
|
+
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'support/helper'
|
2
|
+
|
3
|
+
describe 'MyJohnDeereApi::Request::Create::Asset' do
|
4
|
+
let(:client) { JD::Client.new(API_KEY, API_SECRET, environment: :sandbox, access: [ACCESS_TOKEN, ACCESS_SECRET]) }
|
5
|
+
let(:accessor) { VCR.use_cassette('catalog') { client.send(:accessor) } }
|
6
|
+
|
7
|
+
describe '#initialize(access_token, attributes)' do
|
8
|
+
it 'accepts an accessor and attributes' do
|
9
|
+
attributes = {attribute: 'value'}
|
10
|
+
object = JD::Request::Create::Asset.new(accessor, attributes)
|
11
|
+
|
12
|
+
assert_equal accessor, object.accessor
|
13
|
+
assert_equal attributes, object.attributes
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require 'support/helper'
|
2
|
+
|
3
|
+
describe 'MyJohnDeereApi::Request::Create::Base' do
|
4
|
+
let(:client) { JD::Client.new(API_KEY, API_SECRET, environment: :sandbox, access: [ACCESS_TOKEN, ACCESS_SECRET]) }
|
5
|
+
let(:accessor) { VCR.use_cassette('catalog') { client.send(:accessor) } }
|
6
|
+
|
7
|
+
describe '#initialize(access_token, attributes)' do
|
8
|
+
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'support/helper'
|
2
|
+
|
3
|
+
describe 'MyJohnDeereApi::Request::Create' do
|
4
|
+
describe 'loading dependencies' do
|
5
|
+
it 'loads Request::Create::Base' do
|
6
|
+
assert JD::Request::Create::Base
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'loads Request::Create::Asset' do
|
10
|
+
assert JD::Request::Create::Asset
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'loads Request::Create::AssetLocation' do
|
14
|
+
assert JD::Request::Create::AssetLocation
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://sandboxapi.deere.com/platform/organizations/444563/flagCategories
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"@type":"FlagCategory","categoryTitle":"Mountain Dew","sourceNode":"7ba95d7a-f798-46d0-9bf9-c39c31bcf984","links":[{"rel":"contributionDefinition","uri":"https://sandboxapi.deere.com/platform/contributionDefinitions/d93611c7-6f74-474f-9569-2cf88f866a32"}],"preferred":true}'
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- application/vnd.deere.axiom.v3+json
|
12
|
+
Content-Type:
|
13
|
+
- application/vnd.deere.axiom.v3+json
|
14
|
+
Accept-Encoding:
|
15
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
16
|
+
User-Agent:
|
17
|
+
- OAuth gem v0.5.4
|
18
|
+
Content-Length:
|
19
|
+
- '274'
|
20
|
+
Authorization:
|
21
|
+
- OAuth oauth_body_hash="aNgumBwEzeKYfLOtt5eKxESOxZw%3D", oauth_consumer_key="johndeere-wgmADngYCRmfpEbVgSyc709wnyRux5J7PAv8SE7B",
|
22
|
+
oauth_nonce="wTCf5Hv2r9t83Zfm7DkZaRQleb9TAz5Y1aeVElSU08", oauth_signature="arrFHdesSS315MPGWJWz%2FCYbrLE%3D",
|
23
|
+
oauth_signature_method="HMAC-SHA1", oauth_timestamp="1579215133", oauth_token="47bbb9c9-41a8-4bec-8127-e3c5760af2f6",
|
24
|
+
oauth_version="1.0"
|
25
|
+
response:
|
26
|
+
status:
|
27
|
+
code: 409
|
28
|
+
message: Conflict
|
29
|
+
headers:
|
30
|
+
Date:
|
31
|
+
- Thu, 16 Jan 2020 22:52:13 GMT
|
32
|
+
X-Deere-Handling-Server:
|
33
|
+
- ip-10-214-45-154
|
34
|
+
X-Frame-Options:
|
35
|
+
- SAMEORIGIN
|
36
|
+
Location:
|
37
|
+
- https://sandboxapi.deere.com/platform/flagCategories/b57110f3-0297-461c-81aa-d3b16e111d4d
|
38
|
+
X-Deere-Elapsed-Ms:
|
39
|
+
- '420'
|
40
|
+
Content-Length:
|
41
|
+
- '0'
|
42
|
+
Connection:
|
43
|
+
- close
|
44
|
+
body:
|
45
|
+
encoding: UTF-8
|
46
|
+
string: ''
|
47
|
+
http_version:
|
48
|
+
recorded_at: Thu, 16 Jan 2020 22:52:14 GMT
|
49
|
+
recorded_with: VCR 5.0.0
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: my_john_deere_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jaime. Bellmyer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-01-
|
11
|
+
date: 2020-01-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: vcr
|
@@ -120,6 +120,10 @@ files:
|
|
120
120
|
- lib/my_john_deere_api/request/collection/fields.rb
|
121
121
|
- lib/my_john_deere_api/request/collection/flags.rb
|
122
122
|
- lib/my_john_deere_api/request/collection/organizations.rb
|
123
|
+
- lib/my_john_deere_api/request/create.rb
|
124
|
+
- lib/my_john_deere_api/request/create/asset.rb
|
125
|
+
- lib/my_john_deere_api/request/create/asset_location.rb
|
126
|
+
- lib/my_john_deere_api/request/create/base.rb
|
123
127
|
- lib/my_john_deere_api/version.rb
|
124
128
|
- test/lib/my_john_deere_api/authorize_test.rb
|
125
129
|
- test/lib/my_john_deere_api/client_test.rb
|
@@ -144,6 +148,10 @@ files:
|
|
144
148
|
- test/lib/my_john_deere_api/request/collection/flags_test.rb
|
145
149
|
- test/lib/my_john_deere_api/request/collection/organizations_test.rb
|
146
150
|
- test/lib/my_john_deere_api/request/collection_test.rb
|
151
|
+
- test/lib/my_john_deere_api/request/create/asset_location_test.rb
|
152
|
+
- test/lib/my_john_deere_api/request/create/asset_test.rb
|
153
|
+
- test/lib/my_john_deere_api/request/create/base_test.rb
|
154
|
+
- test/lib/my_john_deere_api/request/create_test.rb
|
147
155
|
- test/lib/my_john_deere_api/request_test.rb
|
148
156
|
- test/lib/my_john_deere_api/version_test.rb
|
149
157
|
- test/my_john_deere_api_test.rb
|
@@ -157,6 +165,7 @@ files:
|
|
157
165
|
- test/support/vcr/get_flags.yml
|
158
166
|
- test/support/vcr/get_organizations.yml
|
159
167
|
- test/support/vcr/get_request_token.yml
|
168
|
+
- test/support/vcr/post_flag_categories.yml
|
160
169
|
homepage: https://github.com/Intellifarm/my_john_deere_api
|
161
170
|
licenses:
|
162
171
|
- MIT
|