dor-workflow-client 3.1.0 → 3.2.0
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/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
|
[](https://travis-ci.org/sul-dlss/dor-workflow-client)
|
2
|
+
[](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
|