artemis_api 0.2.0 → 0.7.4
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 +5 -5
- data/.ruby-version +1 -0
- data/Gemfile.lock +22 -14
- data/History.txt +18 -0
- data/README.md +40 -4
- data/artemis_api.gemspec +9 -7
- data/bin/console +2 -6
- data/lib/artemis_api.rb +6 -0
- data/lib/artemis_api/batch.rb +6 -4
- data/lib/artemis_api/client.rb +131 -51
- data/lib/artemis_api/crop_variety.rb +5 -0
- data/lib/artemis_api/custom_data.rb +5 -0
- data/lib/artemis_api/custom_fields.rb +5 -0
- data/lib/artemis_api/facility.rb +26 -10
- data/lib/artemis_api/model.rb +64 -21
- data/lib/artemis_api/resource_unit.rb +14 -0
- data/lib/artemis_api/stage.rb +15 -0
- data/lib/artemis_api/sub_stage.rb +5 -0
- data/lib/artemis_api/subscription.rb +4 -4
- data/lib/artemis_api/user.rb +1 -1
- data/lib/artemis_api/version.rb +1 -1
- data/lib/artemis_api/zone.rb +1 -0
- data/test/artemis_api_test.rb +7 -0
- data/test/batch_test.rb +94 -0
- data/test/client_test.rb +66 -0
- data/test/completion_test.rb +38 -0
- data/test/discard_test.rb +93 -0
- data/test/facility_test.rb +42 -0
- data/test/harvest_test.rb +33 -0
- data/test/harvest_unit_test.rb +25 -0
- data/test/item_test.rb +38 -0
- data/test/organization_test.rb +39 -0
- data/test/resource_unit_test.rb +33 -0
- data/test/seeding_unit_test.rb +24 -0
- data/test/stage_test.rb +39 -0
- data/test/subscription_test.rb +63 -0
- data/test/test_helper.rb +26 -0
- data/test/user_test.rb +66 -0
- data/test/zone_test.rb +42 -0
- metadata +62 -24
- data/artemis_api-0.1.0.gem +0 -0
data/test/test_helper.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
|
2
|
+
require "artemis_api"
|
3
|
+
|
4
|
+
require "minitest/autorun"
|
5
|
+
require "webmock/minitest"
|
6
|
+
require "active_support"
|
7
|
+
require "active_support/core_ext/numeric"
|
8
|
+
require 'active_support/testing/assertions'
|
9
|
+
include ActiveSupport::Testing::Assertions
|
10
|
+
|
11
|
+
def get_client
|
12
|
+
options = {app_id: '12345',
|
13
|
+
app_secret: '67890',
|
14
|
+
base_uri: 'http://localhost:3000'}
|
15
|
+
@expires_at = 1.days.from_now
|
16
|
+
@client = ArtemisApi::Client.new(access_token: 'ya29',
|
17
|
+
refresh_token: 'eyJh',
|
18
|
+
expires_at: @expires_at,
|
19
|
+
options: options)
|
20
|
+
end
|
21
|
+
|
22
|
+
def get_facility
|
23
|
+
stub_request(:get, 'http://localhost:3000/api/v3/facilities/2')
|
24
|
+
.to_return(body: {data: {id: '2', type: 'facilities', attributes: {id: 2, name: 'Rare Dankness'}}}.to_json)
|
25
|
+
@facility = ArtemisApi::Facility.find(id: 2, client: @client)
|
26
|
+
end
|
data/test/user_test.rb
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class UserTest < Minitest::Test
|
4
|
+
def setup
|
5
|
+
get_client
|
6
|
+
get_facility
|
7
|
+
|
8
|
+
stub_request(:get, "http://localhost:3000/api/v3/user")
|
9
|
+
.to_return(body: {data: {id: '41', type: 'users', attributes: {id: 41, full_name: 'Jamey Hampton', email: 'jhampton@artemisag.com'}}}.to_json)
|
10
|
+
|
11
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/users")
|
12
|
+
.to_return(body: {data: [{id: '41', type: 'users', attributes: {id: 41, full_name: 'Jamey Hampton', email: 'jhampton@artemisag.com'}}, {id: '42', type: 'users', attributes: {id: 42, full_name: 'Developer', email: 'developer@artemisag.com'}}]}.to_json)
|
13
|
+
|
14
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/users/42")
|
15
|
+
.to_return(body: {data: {id: '42', type: 'users', attributes: {id: 42, full_name: 'Developer', email: 'developer@artemisag.com'}}}.to_json)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_getting_current_user
|
19
|
+
user = ArtemisApi::User.get_current(client: @client)
|
20
|
+
assert_equal user.id, 41
|
21
|
+
assert_equal user.full_name, 'Jamey Hampton'
|
22
|
+
assert_equal user.email, 'jhampton@artemisag.com'
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_finding_all_users
|
26
|
+
users = ArtemisApi::User.find_all(facility_id: @facility.id, client: @client)
|
27
|
+
assert_equal 2, users.count
|
28
|
+
assert_equal 2, @client.objects['users'].count
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_finding_all_users_through_facility
|
32
|
+
users = @facility.users
|
33
|
+
assert_equal 2, users.count
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_finding_a_specific_user
|
37
|
+
user = ArtemisApi::User.find(id: 42, facility_id: @facility.id, client: @client)
|
38
|
+
assert_equal user.full_name, 'Developer'
|
39
|
+
assert_equal user.email, 'developer@artemisag.com'
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_finding_a_specific_user_through_facility
|
43
|
+
user = @facility.user(42)
|
44
|
+
assert_equal user.full_name, 'Developer'
|
45
|
+
assert_equal user.email, 'developer@artemisag.com'
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_finding_a_user_with_included_organizations
|
49
|
+
stub_request(:get, 'http://localhost:3000/api/v3/facilities/2/users/42?include=organizations')
|
50
|
+
.to_return(body: {data:
|
51
|
+
{id: '42',
|
52
|
+
type: 'users',
|
53
|
+
attributes: {id: 42, full_name: 'Developer', email: 'developer@artemisag.com'}},
|
54
|
+
included: [{id: '1', type: 'organizations', attributes: {id: 1, name: 'Vegetable Sky'}}]}.to_json)
|
55
|
+
|
56
|
+
user = ArtemisApi::User.find(id: 42, facility_id: @facility.id, client: @client, include: "organizations")
|
57
|
+
assert_equal user.full_name, 'Developer'
|
58
|
+
assert_equal user.email, 'developer@artemisag.com'
|
59
|
+
assert_equal @client.objects['organizations'].count, 1
|
60
|
+
|
61
|
+
# Since the organization has already been included and stored in the client objects array,
|
62
|
+
# this call doesn't actually hit the API and consdoesn't need to be stubbed.
|
63
|
+
organization = ArtemisApi::Organization.find(id: 1, client: @client)
|
64
|
+
assert_equal organization.name, 'Vegetable Sky'
|
65
|
+
end
|
66
|
+
end
|
data/test/zone_test.rb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
class ZoneTest < Minitest::Test
|
4
|
+
def setup
|
5
|
+
get_client
|
6
|
+
get_facility
|
7
|
+
|
8
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/zones")
|
9
|
+
.to_return(body: {data: [{id: '1', type: 'zones', attributes: {id: 1, name: 'Germination'}}, {id: '2', type: 'zones', attributes: {id: 2, name: 'Propagation'}}]}.to_json)
|
10
|
+
|
11
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/zones/2")
|
12
|
+
.to_return(body: {data: {id: '2', type: 'zones', attributes: {id: 2, name: 'Propagation'}}}.to_json)
|
13
|
+
|
14
|
+
stub_request(:get, "http://localhost:3000/api/v3/facilities/#{@facility.id}/zones?filter[seeding_unit_id]=100")
|
15
|
+
.to_return(body: {data: [{id: '2', type: 'zones', attributes: {id: 2, name: 'Propagation'}}]}.to_json)
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_finding_all_zones
|
19
|
+
zones = ArtemisApi::Zone.find_all(facility_id: @facility.id, client: @client)
|
20
|
+
assert_equal 2, zones.count
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_finding_all_zones_through_facility
|
24
|
+
zones = @facility.zones
|
25
|
+
assert_equal 2, zones.count
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_finding_a_specific_zone
|
29
|
+
zone = ArtemisApi::Zone.find(id: 2, facility_id: @facility.id, client: @client)
|
30
|
+
assert_equal 'Propagation', zone.name
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_finding_a_specific_zone_through_facility
|
34
|
+
zone = @facility.zone(2)
|
35
|
+
assert_equal 'Propagation', zone.name
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_filtering_zones_by_seeding_unit_id
|
39
|
+
zones = ArtemisApi::Zone.find_all(facility_id: @facility.id, client: @client, filters: {seeding_unit_id: 100})
|
40
|
+
assert_equal 1, zones.count
|
41
|
+
end
|
42
|
+
end
|
metadata
CHANGED
@@ -1,43 +1,58 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: artemis_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jamey Hampton
|
8
|
-
|
8
|
+
- Carlos Betancourt Carrero
|
9
|
+
autorequire:
|
9
10
|
bindir: exe
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2020-08-14 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
15
|
+
name: oauth2
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
16
17
|
requirements:
|
17
|
-
- - "
|
18
|
+
- - ">="
|
18
19
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
20
|
+
version: '0'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: activesupport
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
20
35
|
type: :development
|
21
36
|
prerelease: false
|
22
37
|
version_requirements: !ruby/object:Gem::Requirement
|
23
38
|
requirements:
|
24
|
-
- - "
|
39
|
+
- - ">="
|
25
40
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
41
|
+
version: '0'
|
27
42
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
43
|
+
name: bundler
|
29
44
|
requirement: !ruby/object:Gem::Requirement
|
30
45
|
requirements:
|
31
46
|
- - "~>"
|
32
47
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
48
|
+
version: '1.16'
|
34
49
|
type: :development
|
35
50
|
prerelease: false
|
36
51
|
version_requirements: !ruby/object:Gem::Requirement
|
37
52
|
requirements:
|
38
53
|
- - "~>"
|
39
54
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
55
|
+
version: '1.16'
|
41
56
|
- !ruby/object:Gem::Dependency
|
42
57
|
name: minitest
|
43
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -53,7 +68,7 @@ dependencies:
|
|
53
68
|
- !ruby/object:Gem::Version
|
54
69
|
version: '5.0'
|
55
70
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
71
|
+
name: pry
|
57
72
|
requirement: !ruby/object:Gem::Requirement
|
58
73
|
requirements:
|
59
74
|
- - ">="
|
@@ -67,21 +82,21 @@ dependencies:
|
|
67
82
|
- !ruby/object:Gem::Version
|
68
83
|
version: '0'
|
69
84
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
85
|
+
name: rake
|
71
86
|
requirement: !ruby/object:Gem::Requirement
|
72
87
|
requirements:
|
73
|
-
- - "
|
88
|
+
- - "~>"
|
74
89
|
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
90
|
+
version: '13.0'
|
76
91
|
type: :development
|
77
92
|
prerelease: false
|
78
93
|
version_requirements: !ruby/object:Gem::Requirement
|
79
94
|
requirements:
|
80
|
-
- - "
|
95
|
+
- - "~>"
|
81
96
|
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
97
|
+
version: '13.0'
|
83
98
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
99
|
+
name: webmock
|
85
100
|
requirement: !ruby/object:Gem::Requirement
|
86
101
|
requirements:
|
87
102
|
- - ">="
|
@@ -94,14 +109,16 @@ dependencies:
|
|
94
109
|
- - ">="
|
95
110
|
- !ruby/object:Gem::Version
|
96
111
|
version: '0'
|
97
|
-
description:
|
112
|
+
description:
|
98
113
|
email:
|
99
114
|
- jhampton@artemisag.com
|
115
|
+
- cbetancourt@artemisag.com
|
100
116
|
executables: []
|
101
117
|
extensions: []
|
102
118
|
extra_rdoc_files: []
|
103
119
|
files:
|
104
120
|
- ".gitignore"
|
121
|
+
- ".ruby-version"
|
105
122
|
- ".travis.yml"
|
106
123
|
- CODE_OF_CONDUCT.md
|
107
124
|
- Gemfile
|
@@ -110,7 +127,6 @@ files:
|
|
110
127
|
- LICENSE.txt
|
111
128
|
- README.md
|
112
129
|
- Rakefile
|
113
|
-
- artemis_api-0.1.0.gem
|
114
130
|
- artemis_api.gemspec
|
115
131
|
- bin/console
|
116
132
|
- bin/setup
|
@@ -118,6 +134,9 @@ files:
|
|
118
134
|
- lib/artemis_api/batch.rb
|
119
135
|
- lib/artemis_api/client.rb
|
120
136
|
- lib/artemis_api/completion.rb
|
137
|
+
- lib/artemis_api/crop_variety.rb
|
138
|
+
- lib/artemis_api/custom_data.rb
|
139
|
+
- lib/artemis_api/custom_fields.rb
|
121
140
|
- lib/artemis_api/discard.rb
|
122
141
|
- lib/artemis_api/facility.rb
|
123
142
|
- lib/artemis_api/harvest.rb
|
@@ -125,16 +144,36 @@ files:
|
|
125
144
|
- lib/artemis_api/item.rb
|
126
145
|
- lib/artemis_api/model.rb
|
127
146
|
- lib/artemis_api/organization.rb
|
147
|
+
- lib/artemis_api/resource_unit.rb
|
128
148
|
- lib/artemis_api/seeding_unit.rb
|
149
|
+
- lib/artemis_api/stage.rb
|
150
|
+
- lib/artemis_api/sub_stage.rb
|
129
151
|
- lib/artemis_api/subscription.rb
|
130
152
|
- lib/artemis_api/user.rb
|
131
153
|
- lib/artemis_api/version.rb
|
132
154
|
- lib/artemis_api/zone.rb
|
155
|
+
- test/artemis_api_test.rb
|
156
|
+
- test/batch_test.rb
|
157
|
+
- test/client_test.rb
|
158
|
+
- test/completion_test.rb
|
159
|
+
- test/discard_test.rb
|
160
|
+
- test/facility_test.rb
|
161
|
+
- test/harvest_test.rb
|
162
|
+
- test/harvest_unit_test.rb
|
163
|
+
- test/item_test.rb
|
164
|
+
- test/organization_test.rb
|
165
|
+
- test/resource_unit_test.rb
|
166
|
+
- test/seeding_unit_test.rb
|
167
|
+
- test/stage_test.rb
|
168
|
+
- test/subscription_test.rb
|
169
|
+
- test/test_helper.rb
|
170
|
+
- test/user_test.rb
|
171
|
+
- test/zone_test.rb
|
133
172
|
homepage: https://github.com/artemis-ag/artemis_api/
|
134
173
|
licenses:
|
135
174
|
- MIT
|
136
175
|
metadata: {}
|
137
|
-
post_install_message:
|
176
|
+
post_install_message:
|
138
177
|
rdoc_options: []
|
139
178
|
require_paths:
|
140
179
|
- lib
|
@@ -149,9 +188,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
149
188
|
- !ruby/object:Gem::Version
|
150
189
|
version: '0'
|
151
190
|
requirements: []
|
152
|
-
|
153
|
-
|
154
|
-
signing_key:
|
191
|
+
rubygems_version: 3.0.8
|
192
|
+
signing_key:
|
155
193
|
specification_version: 4
|
156
194
|
summary: An API wrapper for the ArtemisAg API
|
157
195
|
test_files: []
|
data/artemis_api-0.1.0.gem
DELETED
Binary file
|