dor-workflow-client 3.1.0 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -0
- data/dor-workflow-client.gemspec +0 -4
- data/lib/dor/workflow/client/lifecycle_routes.rb +23 -27
- data/lib/dor/workflow/client/version.rb +1 -1
- data/lib/dor/workflow/client/workflow_routes.rb +6 -5
- data/spec/spec_helper.rb +0 -2
- data/spec/workflow/client_spec.rb +6 -0
- metadata +2 -76
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: efd50cf41d262788cb42851599ce7e4556be25329de08a657cca03aa2e76ba23
|
4
|
+
data.tar.gz: 6a95df393c1110cfb0eb23d10673b7a057cb27c15f326a099d2ee970f7fc21ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b438491d28534e0f80789ac107a5b882aa9d21310497105f50ebb42e22324a6c29a905f3da2cda8595febec2d65df6f2e6c3c0535727b4f534df64e8fbfb789
|
7
|
+
data.tar.gz: b16d230f7f4f86d0edae823233d99be2afd0a6bef875ffb4c2b6a29cd4cbde1f8e06319bd90434c1aa79591c87a429ee7c6bf8c47617f9ea20e2bbbeb2c3f0d1
|
data/README.md
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
[![Build Status](https://travis-ci.org/sul-dlss/dor-workflow-client.svg?branch=master)](https://travis-ci.org/sul-dlss/dor-workflow-client)
|
2
|
+
[![Gem Version](https://badge.fury.io/rb/dor-workflow-client.svg)](https://badge.fury.io/rb/dor-workflow-client)
|
2
3
|
|
3
4
|
# dor-workflow-client gem
|
4
5
|
|
data/dor-workflow-client.gemspec
CHANGED
@@ -18,16 +18,12 @@ Gem::Specification.new do |gem|
|
|
18
18
|
gem.require_paths = ['lib']
|
19
19
|
|
20
20
|
gem.add_dependency 'activesupport', '>= 3.2.1', '< 6'
|
21
|
-
gem.add_dependency 'confstruct', '>= 0.2.7', '< 2'
|
22
21
|
gem.add_dependency 'deprecation', '~> 0'
|
23
22
|
gem.add_dependency 'faraday', '~> 0.9', '>= 0.9.2'
|
24
23
|
gem.add_dependency 'faraday_middleware'
|
25
|
-
gem.add_dependency 'net-http-persistent', '>= 2.9.4', '< 4.a'
|
26
24
|
gem.add_dependency 'nokogiri', '~> 1.6'
|
27
25
|
|
28
|
-
gem.add_development_dependency 'equivalent-xml', '~> 0.5', '>= 0.5.1'
|
29
26
|
gem.add_development_dependency 'rake'
|
30
|
-
gem.add_development_dependency 'redcarpet'
|
31
27
|
gem.add_development_dependency 'rspec', '~> 3.3'
|
32
28
|
gem.add_development_dependency 'rubocop', '~> 0.63.1'
|
33
29
|
gem.add_development_dependency 'simplecov'
|
@@ -12,39 +12,21 @@ module Dor
|
|
12
12
|
# Returns the Date for a requested milestone from workflow lifecycle
|
13
13
|
# @param [String] repo repository name
|
14
14
|
# @param [String] druid object id
|
15
|
-
# @param [String]
|
15
|
+
# @param [String] milestone_name the name of the milestone being queried for
|
16
16
|
# @return [Time] when the milestone was achieved. Returns nil if the milestone does not exist
|
17
|
-
#
|
18
|
-
|
19
|
-
|
20
|
-
# <milestone date="2010-04-29T10:12:51-0700">inprocess</milestone>
|
21
|
-
# <milestone date="2010-06-15T16:08:58-0700">released</milestone>
|
22
|
-
# </lifecycle>
|
23
|
-
def lifecycle(repo, druid, milestone)
|
24
|
-
doc = query_lifecycle(repo, druid)
|
25
|
-
milestone = doc.at_xpath("//lifecycle/milestone[text() = '#{milestone}']")
|
26
|
-
return Time.parse(milestone['date']) if milestone
|
27
|
-
|
28
|
-
nil
|
17
|
+
#
|
18
|
+
def lifecycle(repo, druid, milestone_name)
|
19
|
+
filter_milestone(query_lifecycle(repo, druid), milestone_name)
|
29
20
|
end
|
30
21
|
|
31
22
|
# Returns the Date for a requested milestone ONLY FROM THE ACTIVE workflow table
|
32
23
|
# @param [String] repo repository name
|
33
24
|
# @param [String] druid object id
|
34
|
-
# @param [String]
|
35
|
-
# @return [Time] when the milestone was achieved. Returns nil if the milestone does not
|
36
|
-
#
|
37
|
-
|
38
|
-
|
39
|
-
# <milestone date="2010-04-29T10:12:51-0700">inprocess</milestone>
|
40
|
-
# <milestone date="2010-06-15T16:08:58-0700">released</milestone>
|
41
|
-
# </lifecycle>
|
42
|
-
def active_lifecycle(repo, druid, milestone)
|
43
|
-
doc = query_lifecycle(repo, druid, true)
|
44
|
-
milestone = doc.at_xpath("//lifecycle/milestone[text() = '#{milestone}']")
|
45
|
-
return Time.parse(milestone['date']) if milestone
|
46
|
-
|
47
|
-
nil
|
25
|
+
# @param [String] milestone_name the name of the milestone being queried for
|
26
|
+
# @return [Time] when the milestone was achieved. Returns nil if the milestone does not exis
|
27
|
+
#
|
28
|
+
def active_lifecycle(repo, druid, milestone_name)
|
29
|
+
filter_milestone(query_lifecycle(repo, druid, true), milestone_name)
|
48
30
|
end
|
49
31
|
|
50
32
|
# @return [Hash]
|
@@ -57,7 +39,21 @@ module Dor
|
|
57
39
|
|
58
40
|
private
|
59
41
|
|
42
|
+
def filter_milestone(lifecycle_doc, milestone_name)
|
43
|
+
milestone = lifecycle_doc.at_xpath("//lifecycle/milestone[text() = '#{milestone_name}']")
|
44
|
+
return unless milestone
|
45
|
+
|
46
|
+
Time.parse(milestone['date'])
|
47
|
+
end
|
48
|
+
|
60
49
|
# @return [Nokogiri::XML::Document]
|
50
|
+
# @example An example lifecycle xml from the workflow service.
|
51
|
+
# <lifecycle objectId="druid:ct011cv6501">
|
52
|
+
# <milestone date="2010-04-27T11:34:17-0700">registered</milestone>
|
53
|
+
# <milestone date="2010-04-29T10:12:51-0700">inprocess</milestone>
|
54
|
+
# <milestone date="2010-06-15T16:08:58-0700">released</milestone>
|
55
|
+
# </lifecycle>
|
56
|
+
#
|
61
57
|
def query_lifecycle(repo, druid, active_only = false)
|
62
58
|
req = "#{repo}/objects/#{druid}/lifecycle"
|
63
59
|
req += '?active-only=true' if active_only
|
@@ -20,12 +20,10 @@ module Dor
|
|
20
20
|
# @param [String] workflow_name The name of the workflow you want to create
|
21
21
|
# @param [String] wf_xml Ignored
|
22
22
|
# @param [Hash] opts optional params
|
23
|
-
# @option opts [Boolean] :create_ds if true, a workflow datastream will be created in Fedora. Set to false if you do not want a datastream to be created
|
24
|
-
# If you do not pass in an <b>opts</b> Hash, then :create_ds is set to true by default
|
25
23
|
# @option opts [String] :lane_id adds laneId attribute to all process elements in the wf_xml workflow xml. Defaults to a value of 'default'
|
26
24
|
# @return [Boolean] always true
|
27
25
|
#
|
28
|
-
def create_workflow(_repo, druid, workflow_name, _wf_xml, opts = {
|
26
|
+
def create_workflow(_repo, druid, workflow_name, _wf_xml, opts = {})
|
29
27
|
create_workflow_by_name(druid, workflow_name, opts)
|
30
28
|
end
|
31
29
|
deprecation_deprecate create_workflow: 'use create_workflow_by_name instead'
|
@@ -40,12 +38,15 @@ module Dor
|
|
40
38
|
# name that is known by the workflow service.
|
41
39
|
# @param [Hash] opts optional params
|
42
40
|
# @option opts [String] :lane_id adds laneId attribute to all process elements in the wf_xml workflow xml. Defaults to a value of 'default'
|
41
|
+
# @option opts [Integer] :version specifies the version so that workflow service doesn't need to query dor-services.
|
43
42
|
# @return [Boolean] always true
|
44
43
|
#
|
45
|
-
def create_workflow_by_name(druid, workflow_name, opts = {
|
44
|
+
def create_workflow_by_name(druid, workflow_name, opts = {})
|
45
|
+
params = { 'lane-id' => opts.fetch(:lane_id, 'default') }
|
46
|
+
params['version'] = opts[:version] if opts[:version]
|
46
47
|
requestor.request "objects/#{druid}/workflows/#{workflow_name}", 'post', '',
|
47
48
|
content_type: 'application/xml',
|
48
|
-
params:
|
49
|
+
params: params
|
49
50
|
true
|
50
51
|
end
|
51
52
|
|
data/spec/spec_helper.rb
CHANGED
@@ -75,6 +75,7 @@ RSpec.describe Dor::Workflow::Client do
|
|
75
75
|
stub.post("objects/#{@druid}/workflows/etdSubmitWF") { |_env| [201, {}, ''] }
|
76
76
|
stub.post("objects/#{@druid}/workflows/raiseException") { |_env| raise 'broken' }
|
77
77
|
stub.post("objects/#{@druid}/workflows/laneIdWF?lane-id=foo_lane") { |_env| [201, {}, ''] }
|
78
|
+
stub.post("objects/#{@druid}/workflows/versionWF?version=2") { |_env| [201, {}, ''] }
|
78
79
|
end
|
79
80
|
end
|
80
81
|
|
@@ -104,6 +105,7 @@ RSpec.describe Dor::Workflow::Client do
|
|
104
105
|
stub.post("objects/#{@druid}/workflows/etdSubmitWF") { |_env| [201, {}, ''] }
|
105
106
|
stub.post("objects/#{@druid}/workflows/raiseException") { |_env| raise 'broken' }
|
106
107
|
stub.post("objects/#{@druid}/workflows/laneIdWF?lane-id=foo_lane") { |_env| [201, {}, ''] }
|
108
|
+
stub.post("objects/#{@druid}/workflows/versionWF?version=2") { |_env| [201, {}, ''] }
|
107
109
|
end
|
108
110
|
end
|
109
111
|
|
@@ -118,6 +120,10 @@ RSpec.describe Dor::Workflow::Client do
|
|
118
120
|
it 'sets the lane_id param if provided in options hash' do
|
119
121
|
client.create_workflow_by_name(@druid, 'laneIdWF', lane_id: 'foo_lane')
|
120
122
|
end
|
123
|
+
|
124
|
+
it 'sets the version param if provided in options hash' do
|
125
|
+
client.create_workflow_by_name(@druid, 'versionWF', version: 2)
|
126
|
+
end
|
121
127
|
end
|
122
128
|
|
123
129
|
describe '#update_workflow_status' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dor-workflow-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Willy Mene
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2019-05-
|
12
|
+
date: 2019-05-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -31,26 +31,6 @@ dependencies:
|
|
31
31
|
- - "<"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '6'
|
34
|
-
- !ruby/object:Gem::Dependency
|
35
|
-
name: confstruct
|
36
|
-
requirement: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: 0.2.7
|
41
|
-
- - "<"
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: '2'
|
44
|
-
type: :runtime
|
45
|
-
prerelease: false
|
46
|
-
version_requirements: !ruby/object:Gem::Requirement
|
47
|
-
requirements:
|
48
|
-
- - ">="
|
49
|
-
- !ruby/object:Gem::Version
|
50
|
-
version: 0.2.7
|
51
|
-
- - "<"
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '2'
|
54
34
|
- !ruby/object:Gem::Dependency
|
55
35
|
name: deprecation
|
56
36
|
requirement: !ruby/object:Gem::Requirement
|
@@ -99,26 +79,6 @@ dependencies:
|
|
99
79
|
- - ">="
|
100
80
|
- !ruby/object:Gem::Version
|
101
81
|
version: '0'
|
102
|
-
- !ruby/object:Gem::Dependency
|
103
|
-
name: net-http-persistent
|
104
|
-
requirement: !ruby/object:Gem::Requirement
|
105
|
-
requirements:
|
106
|
-
- - ">="
|
107
|
-
- !ruby/object:Gem::Version
|
108
|
-
version: 2.9.4
|
109
|
-
- - "<"
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version: 4.a
|
112
|
-
type: :runtime
|
113
|
-
prerelease: false
|
114
|
-
version_requirements: !ruby/object:Gem::Requirement
|
115
|
-
requirements:
|
116
|
-
- - ">="
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
version: 2.9.4
|
119
|
-
- - "<"
|
120
|
-
- !ruby/object:Gem::Version
|
121
|
-
version: 4.a
|
122
82
|
- !ruby/object:Gem::Dependency
|
123
83
|
name: nokogiri
|
124
84
|
requirement: !ruby/object:Gem::Requirement
|
@@ -133,26 +93,6 @@ dependencies:
|
|
133
93
|
- - "~>"
|
134
94
|
- !ruby/object:Gem::Version
|
135
95
|
version: '1.6'
|
136
|
-
- !ruby/object:Gem::Dependency
|
137
|
-
name: equivalent-xml
|
138
|
-
requirement: !ruby/object:Gem::Requirement
|
139
|
-
requirements:
|
140
|
-
- - "~>"
|
141
|
-
- !ruby/object:Gem::Version
|
142
|
-
version: '0.5'
|
143
|
-
- - ">="
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: 0.5.1
|
146
|
-
type: :development
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - "~>"
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '0.5'
|
153
|
-
- - ">="
|
154
|
-
- !ruby/object:Gem::Version
|
155
|
-
version: 0.5.1
|
156
96
|
- !ruby/object:Gem::Dependency
|
157
97
|
name: rake
|
158
98
|
requirement: !ruby/object:Gem::Requirement
|
@@ -167,20 +107,6 @@ dependencies:
|
|
167
107
|
- - ">="
|
168
108
|
- !ruby/object:Gem::Version
|
169
109
|
version: '0'
|
170
|
-
- !ruby/object:Gem::Dependency
|
171
|
-
name: redcarpet
|
172
|
-
requirement: !ruby/object:Gem::Requirement
|
173
|
-
requirements:
|
174
|
-
- - ">="
|
175
|
-
- !ruby/object:Gem::Version
|
176
|
-
version: '0'
|
177
|
-
type: :development
|
178
|
-
prerelease: false
|
179
|
-
version_requirements: !ruby/object:Gem::Requirement
|
180
|
-
requirements:
|
181
|
-
- - ">="
|
182
|
-
- !ruby/object:Gem::Version
|
183
|
-
version: '0'
|
184
110
|
- !ruby/object:Gem::Dependency
|
185
111
|
name: rspec
|
186
112
|
requirement: !ruby/object:Gem::Requirement
|