cellect-server 1.3.1 → 1.3.2

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: af4dc267e4676e156bff663deb7d214da9ee8209
4
- data.tar.gz: 8b5b88fa5b11b5a1f67a6463b53b868193e40ce6
3
+ metadata.gz: 87c22c0c9de05b34f0da9f19778ffc5cb89faf2f
4
+ data.tar.gz: 6018574d21d7b9c74a67419bfff573153bdfcf9c
5
5
  SHA512:
6
- metadata.gz: a5d77e05e2df2fd6e4d75c4fb3462123b40a35e2b58645cfe3cbe3d17c7a10977f7905706df51d2dca28a0644b404d74b5e050ca592cf0aa533845e569d9eff5
7
- data.tar.gz: f3d20a24995e1f09cdc65b4b0d2fe500dc8e8eb4276b2d292371d678766023b9d8734f9a4cc4233c20733616ea38b3b4eb8eee670a39f6c9e8066b7c75f8f3ab
6
+ metadata.gz: 47f439777229098490e256db315e66e9bb20f285262f2a1bf72cbeca3ecac88c2c7055e9bf3b05a2a6aef685084e0d7c860f745301e0372d957361afb2cd01da
7
+ data.tar.gz: b73b3f427c2329dd3ef7b7e2d0697cabf09fc07624f2d33f2d994f74cff8578b7ccc9ba9b9daacaa2e7e7d6e8b002a7f1b739c788a2bea2bc6e901c12564b75b
@@ -47,6 +47,7 @@ module Cellect
47
47
  #
48
48
  # Returns the workflow's status
49
49
  get :status do
50
+ return four_oh_four unless workflow
50
51
  workflow.status
51
52
  end
52
53
 
@@ -54,6 +55,7 @@ module Cellect
54
55
  #
55
56
  # Reloads the workflow from the adapter
56
57
  post :reload do
58
+ return four_oh_four unless workflow
57
59
  workflow.async.load_data
58
60
  end
59
61
 
@@ -6,6 +6,10 @@ module Cellect
6
6
  @workflow ||= Workflow[params[:workflow_id]]
7
7
  end
8
8
 
9
+ def four_oh_four
10
+ error! 'Not Found', 404
11
+ end
12
+
9
13
  def selector_params
10
14
  {
11
15
  limit: param_to_int(:limit, default: 5),
@@ -10,7 +10,8 @@ module Cellect
10
10
  # user_id: integer, optional
11
11
  # group_id: integer, optional
12
12
  get do
13
- workflow.sample selector_params
13
+ return four_oh_four unless workflow
14
+ workflow.sample(selector_params)
14
15
  end
15
16
 
16
17
  # PUT /workflows/:workflow_id/add
@@ -21,7 +22,8 @@ module Cellect
21
22
  # group_id: integer, required if grouped
22
23
  # priority: float, required if prioritized
23
24
  put :add do
24
- workflow.add update_params
25
+ return four_oh_four unless workflow
26
+ workflow.add(update_params)
25
27
  nil
26
28
  end
27
29
 
@@ -32,7 +34,8 @@ module Cellect
32
34
  # subject_id: integer
33
35
  # group_id: integer, required if grouped
34
36
  put :remove do
35
- workflow.remove update_params
37
+ return four_oh_four unless workflow
38
+ workflow.remove(update_params)
36
39
  nil
37
40
  end
38
41
  end
@@ -10,6 +10,7 @@ module Cellect
10
10
  # Accepts params
11
11
  # subject_id: integer, required
12
12
  put :add_seen do
13
+ return four_oh_four unless workflow
13
14
  user_id = param_to_int :user_id
14
15
  subject_id = param_to_int :subject_id
15
16
 
@@ -24,6 +25,7 @@ module Cellect
24
25
  #
25
26
  # Preloads a user for a workflow
26
27
  post :load do
28
+ return four_oh_four unless workflow
27
29
  user_id = param_to_int :user_id
28
30
 
29
31
  if user_id && user_id > 0
@@ -19,8 +19,9 @@ module Cellect
19
19
 
20
20
  # Load a workflow
21
21
  def self.[]=(name, opts)
22
- Workflow.workflow_names[name] = true
23
22
  Actor[name] = supervise name, pairwise: opts['pairwise'], prioritized: opts['prioritized']
23
+ Workflow.workflow_names[name] = true if Actor[name]
24
+ Actor[name]
24
25
  end
25
26
 
26
27
  # The names of all workflows currently loaded
@@ -31,7 +32,7 @@ module Cellect
31
32
 
32
33
  # All currently loaded workflows
33
34
  def self.all
34
- names.collect{ |name| Workflow[name] }
35
+ names.collect{ |name| Workflow[name] }.compact
35
36
  end
36
37
 
37
38
  # Sets up a new workflow and starts the data loading
@@ -1,3 +1,3 @@
1
1
  module Cellect
2
- VERSION = '1.3.1'
2
+ VERSION = '1.3.2'
3
3
  end
@@ -22,5 +22,12 @@ module Cellect::Server
22
22
  end
23
23
  end
24
24
  end
25
+
26
+ it 'should handle missing workflows' do
27
+ allow(Workflow).to receive(:[]).with('missing').and_return nil
28
+ put '/workflows/missing/users/123/add_seen', subject_id: 123
29
+ expect(last_response.status).to eql 404
30
+ expect(last_response.body).to match /Not Found/
31
+ end
25
32
  end
26
33
  end
@@ -36,5 +36,12 @@ module Cellect::Server
36
36
  end
37
37
  end
38
38
  end
39
+
40
+ it 'should handle missing workflows' do
41
+ allow(Workflow).to receive(:[]).with('missing').and_return nil
42
+ put '/workflows/missing/add', subject_id: 123
43
+ expect(last_response.status).to eql 404
44
+ expect(last_response.body).to match /Not Found/
45
+ end
39
46
  end
40
47
  end
@@ -31,5 +31,12 @@ module Cellect::Server
31
31
  end
32
32
  end
33
33
  end
34
+
35
+ it 'should handle missing workflows' do
36
+ allow(Workflow).to receive(:[]).with('missing').and_return nil
37
+ put '/workflows/missing/remove', subject_id: 123
38
+ expect(last_response.status).to eql 404
39
+ expect(last_response.body).to match /Not Found/
40
+ end
34
41
  end
35
42
  end
@@ -30,5 +30,12 @@ module Cellect::Server
30
30
  end
31
31
  end
32
32
  end
33
+
34
+ it 'should handle missing workflows' do
35
+ allow(Workflow).to receive(:[]).with('missing').and_return nil
36
+ get '/workflows/missing', limit: 3, user_id: 123
37
+ expect(last_response.status).to eql 404
38
+ expect(last_response.body).to match /Not Found/
39
+ end
33
40
  end
34
41
  end
@@ -21,5 +21,12 @@ module Cellect::Server
21
21
  end
22
22
  end
23
23
  end
24
+
25
+ it 'should handle missing workflows' do
26
+ allow(Workflow).to receive(:[]).with('missing').and_return nil
27
+ post '/workflows/missing/users/123/load'
28
+ expect(last_response.status).to eql 404
29
+ expect(last_response.body).to match /Not Found/
30
+ end
24
31
  end
25
32
  end
@@ -38,7 +38,7 @@ module Cellect::Server
38
38
 
39
39
  before(:each) do
40
40
  pass_until{ all_workflows.all? &:ready? }
41
- get :stats
41
+ get '/stats'
42
42
  end
43
43
 
44
44
  it 'should include information' do
@@ -69,6 +69,12 @@ module Cellect::Server
69
69
  end
70
70
  end
71
71
  end
72
+
73
+ it 'should handle missing workflows' do
74
+ Workflow.names << 'missing'
75
+ get '/stats'
76
+ expect(last_response).to be_ok
77
+ end
72
78
  end
73
79
  end
74
80
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cellect-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Parrish
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-08 00:00:00.000000000 Z
11
+ date: 2016-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler