assaydepot 0.0.1 → 0.1.1

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.
@@ -0,0 +1,230 @@
1
+ require 'assaydepot'
2
+ require 'dotenv'
3
+ Dotenv.load
4
+
5
+ describe AssayDepot do
6
+ context "scientist_api tests" do
7
+ before(:all) do
8
+ AssayDepot.configure do |config|
9
+ config.access_token = ENV['ACCESS_TOKEN']
10
+ config.url = "#{ENV['SITE']}/api/v2"
11
+ end
12
+ end
13
+
14
+ context "info" do
15
+ let(:info) { AssayDepot::Info.get() }
16
+
17
+ it "info version V2" do
18
+ info["api_version"].should == "V2"
19
+ end
20
+ end
21
+
22
+ context "categories" do
23
+ let(:categories) { AssayDepot::Category.get() }
24
+ it "get all categories" do
25
+ categories[AssayDepot::Category.ref_name].is_a?(Array).should == true
26
+ end
27
+
28
+ it "get specific category" do
29
+ category = AssayDepot::Category.get(id: categories[AssayDepot::Category.ref_name].first[:id])
30
+ categories[AssayDepot::Category.ref_name][0][:id].should == category[:id]
31
+ end
32
+ end
33
+
34
+ context "organizations" do
35
+ let(:organizations) { AssayDepot::Organization.get() }
36
+
37
+ it "get all organizations" do
38
+ organizations.is_a?(Array).should == true
39
+ end
40
+
41
+ it "get specific organization" do
42
+ organization = AssayDepot::Organization.get(id: organizations.first["id"])
43
+ organizations.first["id"].should == organization["id"]
44
+ end
45
+ end
46
+
47
+ context "providers" do
48
+ let(:providers) { AssayDepot::Provider.get() }
49
+
50
+ it "get all providers" do
51
+ providers[AssayDepot::Provider.ref_name].is_a?(Array).should == true
52
+ end
53
+
54
+ it "get specific provider" do
55
+ id = providers[AssayDepot::Provider.ref_name].first["id"]
56
+ provider = AssayDepot::Provider.get(id: id)
57
+ id.is_a?(Integer).should == true
58
+ id.should == provider["provider"]["id"]
59
+ end
60
+
61
+ it "get wares for a specific provider" do
62
+ id = providers[AssayDepot::Provider.ref_name].first["id"]
63
+ ware = AssayDepot::ProviderWare.get(id: id)
64
+ ware[AssayDepot::ProviderWare.ref_name].is_a?(Array).should == true
65
+ end
66
+
67
+ it "update specific provider attribute" do
68
+ id = providers[AssayDepot::Provider.ref_name].first["id"]
69
+ num_employees = rand(1000)
70
+ response = AssayDepot::Provider.put(id: id, body: { number_of_employees: num_employees });
71
+ response["code"].should == "forbidden"
72
+ end
73
+
74
+ end
75
+
76
+ context "quote groups" do
77
+ let(:qg) { AssayDepot::QuoteGroup.mine }
78
+
79
+ it "quote groups mine" do
80
+ qg[AssayDepot::QuoteGroup.ref_name].is_a?(Array).should == true
81
+ end
82
+
83
+ it "quote groups specific id" do
84
+ id = qg[AssayDepot::QuoteGroup.ref_name].first["id"]
85
+ response = AssayDepot::QuoteGroup.get( id: id )
86
+ response["id"].should == id
87
+ end
88
+
89
+ it "quote group add note" do
90
+ id = qg[AssayDepot::QuoteGroup.ref_name].first["id"]
91
+ title_text = "This is some #{rand(1000)} text."
92
+ body_text = "This is some #{rand(1000)} body text."
93
+ response = AssayDepot::AddNote.post(id: id, body: {
94
+ note: {
95
+ title: title_text,
96
+ body: body_text
97
+ }
98
+ })
99
+ response["code"].should == "unprocessable_entity"
100
+ end
101
+ end
102
+
103
+ context "users" do
104
+ let(:users) { AssayDepot::User.get() }
105
+ let(:profile) { AssayDepot::User.profile }
106
+
107
+ it "get all users" do
108
+ users[AssayDepot::User.ref_name].is_a?(Array).should == true
109
+ end
110
+
111
+ it "get my user profile" do
112
+ profile["user"]["first_name"].is_a?(String).should == true
113
+ end
114
+ end
115
+
116
+ context "wares" do
117
+ let(:wares) { AssayDepot::Ware.get() }
118
+
119
+ it "get all wares" do
120
+ wares[AssayDepot::Ware.ref_name].is_a?(Array).should == true
121
+ end
122
+
123
+ it "get specific ware" do
124
+ ware = AssayDepot::Ware.get( id: wares[AssayDepot::Ware.ref_name].first["id"] )
125
+ wares[AssayDepot::Ware.ref_name].first["id"].should == ware["ware"]["id"]
126
+ end
127
+
128
+ it "get providers for a ware id" do
129
+ response = AssayDepot::WareProvider.get( id: wares[AssayDepot::Ware.ref_name].first["id"] )
130
+ response[AssayDepot::WareProvider.ref_name].is_a?(Array).should == true
131
+ end
132
+ end
133
+
134
+ context "wares providers" do
135
+
136
+ before(:all) do
137
+ wares = AssayDepot::Ware.get()
138
+ providers = AssayDepot::Provider.get()
139
+ @ware_id = wares[AssayDepot::Ware.ref_name].first["id"]
140
+ @provider_id = providers[AssayDepot::Provider.ref_name].first["id"]
141
+ @provider_name = providers[AssayDepot::Provider.ref_name].first["name"]
142
+ sleep(1)
143
+ @delete = AssayDepot::WareProvider.delete( id: [@ware_id, @provider_id] )
144
+ @ware_provider_response = AssayDepot::WareProvider.post( id: [@ware_id, @provider_id] )
145
+ # TODO: this should not be needed
146
+ sleep(2)
147
+ @ware_provider = AssayDepot::WareProvider.get( id: @ware_id )
148
+ @provider_ware = AssayDepot::ProviderWare.get( id: @provider_id )
149
+ @clean_up = AssayDepot::WareProvider.delete( id: [@ware_id, @provider_id] )
150
+ @provider_clean_up = AssayDepot::WareProvider.get( id: @ware_id )
151
+ @ware_clean_up = AssayDepot::ProviderWare.get( id: @provider_id )
152
+ end
153
+
154
+ it "make sure provider is not published" do
155
+ (@delete["status"] != nil || @delete["message"] != nil).should == true
156
+ end
157
+
158
+ it "publish provider with ware" do
159
+ @ware_provider_response["result"].should == "OK"
160
+ end
161
+
162
+ it "get posted provider for ware" do
163
+ @ware_provider[AssayDepot::WareProvider.ref_name].select { |el|
164
+ el["name"] == @provider_name
165
+ }.length.should == 1
166
+ end
167
+
168
+ it "get posted ware for provider" do
169
+ @provider_ware[AssayDepot::ProviderWare.ref_name].select { |el|
170
+ el["id"] == @ware_id
171
+ }.length.should == 1
172
+ end
173
+
174
+ it "delete ware provider association" do
175
+ @clean_up["result"].should == "OK"
176
+ end
177
+
178
+ it "verify provider is removed from ware" do
179
+ @provider_clean_up[AssayDepot::WareProvider.ref_name].select { |el|
180
+ el["reference_of_id"] == @ware_id
181
+ }.length.should == 0
182
+ end
183
+
184
+ it "verify ware is removed from provider" do
185
+ @ware_clean_up[AssayDepot::ProviderWare.ref_name].select { |el|
186
+ el["name"] == @provider_name
187
+ }.length.should == 0
188
+ end
189
+ end
190
+
191
+ context "quoted wares" do
192
+ let(:qw) { AssayDepot::QuotedWare.get() }
193
+
194
+ it "deny quoted wares" do
195
+ qw.is_a?(Array).should == false
196
+ end
197
+ end
198
+
199
+ context "webhooks" do
200
+ it "create a web hook for this user" do
201
+ response = AssayDepot::Webhook.put(body: {
202
+ name: "This is another new 'name'.",
203
+ bogus_key: "ignore_me"
204
+ })
205
+
206
+ response[AssayDepot::Webhook.ref_name]["name"].should == "Applied"
207
+ response[AssayDepot::Webhook.ref_name]["bogus_key"].should == "Ignored"
208
+ end
209
+
210
+ it "create a web hook for this user (patch) and verify (get)" do
211
+ response = AssayDepot::Webhook.patch(body: {
212
+ name: "And another new 'name'.",
213
+ bogus_key: "ignore_me"
214
+ })
215
+
216
+ response[AssayDepot::Webhook.ref_name]["name"].should == "Applied"
217
+ response[AssayDepot::Webhook.ref_name]["bogus_key"].should == "Ignored"
218
+ playback = AssayDepot::Webhook.get();
219
+ playback["name"].should == "And another new 'name'."
220
+ end
221
+
222
+ it "delete a web hook for this user (delete)" do
223
+ response = AssayDepot::Webhook.delete();
224
+ response["status"].should == "ok"
225
+ response = AssayDepot::Webhook.get();
226
+ response["code"].should == "not_found"
227
+ end
228
+ end
229
+ end
230
+ end
metadata CHANGED
@@ -1,75 +1,137 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: assaydepot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
5
- prerelease:
4
+ version: 0.1.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Christopher Petersen
8
+ - Ron Ranauro
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-12 00:00:00.000000000 Z
12
+ date: 2021-03-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
16
16
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
17
  requirements:
19
- - - ! '>='
18
+ - - ">="
20
19
  - !ruby/object:Gem::Version
21
20
  version: '0'
22
21
  type: :runtime
23
22
  prerelease: false
24
23
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
24
  requirements:
27
- - - ! '>='
25
+ - - ">="
28
26
  - !ruby/object:Gem::Version
29
27
  version: '0'
30
- description: This is the first version of Assay Depot's Ruby SDK. It provides read
31
- access to Services and Vendors through assaydepot.com's JSON API.
28
+ - !ruby/object:Gem::Dependency
29
+ name: rack
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: rake
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rspec
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: oauth2
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ description: The Scientist Ruby SDK. It provides read access to Services and Suppliers
85
+ through scientist.com's JSON API.
32
86
  email:
33
- - christopher.petersen@gmail.com
87
+ - chris@scientist.com
88
+ - ron@scientist.com
34
89
  executables: []
35
90
  extensions: []
36
91
  extra_rdoc_files: []
37
92
  files:
38
- - .gitignore
93
+ - ".gitignore"
94
+ - ".rspec"
95
+ - ".travis.yml"
39
96
  - Gemfile
40
- - LICENSE
97
+ - LICENSE.md
41
98
  - README.md
42
99
  - Rakefile
43
100
  - assaydepot.gemspec
44
101
  - lib/assaydepot.rb
45
102
  - lib/assaydepot/client.rb
46
103
  - lib/assaydepot/configurable.rb
104
+ - lib/assaydepot/core.rb
105
+ - lib/assaydepot/endpoints.rb
106
+ - lib/assaydepot/event.rb
47
107
  - lib/assaydepot/model.rb
48
- - lib/assaydepot/provider.rb
49
108
  - lib/assaydepot/version.rb
50
- - lib/assaydepot/ware.rb
109
+ - spec/assaydepot_backoffice_spec.rb
110
+ - spec/assaydepot_spec.rb
111
+ - spec/assaydepot_wrapper_spec.rb
51
112
  homepage: https://github.com/assaydepot/assaydepot-rb
52
113
  licenses: []
114
+ metadata: {}
53
115
  post_install_message:
54
116
  rdoc_options: []
55
117
  require_paths:
56
118
  - lib
57
119
  required_ruby_version: !ruby/object:Gem::Requirement
58
- none: false
59
120
  requirements:
60
- - - ! '>='
121
+ - - ">="
61
122
  - !ruby/object:Gem::Version
62
123
  version: '0'
63
124
  required_rubygems_version: !ruby/object:Gem::Requirement
64
- none: false
65
125
  requirements:
66
- - - ! '>='
126
+ - - ">="
67
127
  - !ruby/object:Gem::Version
68
128
  version: '0'
69
129
  requirements: []
70
- rubyforge_project:
71
- rubygems_version: 1.8.24
130
+ rubygems_version: 3.0.3
72
131
  signing_key:
73
- specification_version: 3
132
+ specification_version: 4
74
133
  summary: Provides read access to Assay Depot's Services and Vendors.
75
- test_files: []
134
+ test_files:
135
+ - spec/assaydepot_backoffice_spec.rb
136
+ - spec/assaydepot_spec.rb
137
+ - spec/assaydepot_wrapper_spec.rb
data/LICENSE DELETED
@@ -1,22 +0,0 @@
1
- Copyright (c) 2012 Christopher Petersen
2
-
3
- MIT License
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- "Software"), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1,12 +0,0 @@
1
- module AssayDepot
2
- class Provider
3
- include Model
4
-
5
- def self.search_type
6
- "providers"
7
- end
8
- def self.ref_name
9
- "provider_refs"
10
- end
11
- end
12
- end
@@ -1,12 +0,0 @@
1
- module AssayDepot
2
- class Ware
3
- include Model
4
-
5
- def self.search_type
6
- "wares"
7
- end
8
- def self.ref_name
9
- "ware_refs"
10
- end
11
- end
12
- end