Class: LyberCore::Workflow

Inherits:
Object
  • Object
show all
Defined in:
lib/lyber_core/workflow.rb

Overview

This encapsulates the workflow operations that lyber-core does

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(object_client:, workflow_name:, process:) ⇒ Workflow

Returns a new instance of Workflow.



6
7
8
9
10
# File 'lib/lyber_core/workflow.rb', line 6

def initialize(object_client:, workflow_name:, process:)
  @object_client = object_client
  @workflow_name = workflow_name
  @process = process
end

Instance Attribute Details

#object_clientObject (readonly)

Returns the value of attribute object_client.



50
51
52
# File 'lib/lyber_core/workflow.rb', line 50

def object_client
  @object_client
end

#processObject (readonly)

Returns the value of attribute process.



50
51
52
# File 'lib/lyber_core/workflow.rb', line 50

def process
  @process
end

#workflow_nameObject (readonly)

Returns the value of attribute workflow_name.



50
51
52
# File 'lib/lyber_core/workflow.rb', line 50

def workflow_name
  @workflow_name
end

Instance Method Details

#complete!(status, elapsed, note) ⇒ Object



36
37
38
# File 'lib/lyber_core/workflow.rb', line 36

def complete!(status, elapsed, note)
  workflow_process.update(status:, elapsed:, note:)
end

#error!(error_msg, error_text) ⇒ Object



44
45
46
# File 'lib/lyber_core/workflow.rb', line 44

def error!(error_msg, error_text)
  workflow_process.update_error(error_msg:, error_text:)
end

#object_workflowDor::Services::Client::ObjectWorkflow

Returns for druid/workflow/step on which this instance was initialized.

Returns:

  • (Dor::Services::Client::ObjectWorkflow)

    for druid/workflow/step on which this instance was initialized



13
14
15
# File 'lib/lyber_core/workflow.rb', line 13

def object_workflow
  @object_workflow ||= object_client.workflow(workflow_name)
end

#process_responseDor::Services::Response::Process

Returns for druid/workflow/step on which this instance was initialized.

Returns:

  • (Dor::Services::Response::Process)

    for druid/workflow/step on which this instance was initialized



28
29
30
# File 'lib/lyber_core/workflow.rb', line 28

def process_response
  @process_response ||= workflow_response.process_for_recent_version(name: process)
end

#retrying!Object



40
41
42
# File 'lib/lyber_core/workflow.rb', line 40

def retrying!
  workflow_process.update(status: 'retrying', elapsed: 1.0, note: nil)
end

#start!(note) ⇒ Object



32
33
34
# File 'lib/lyber_core/workflow.rb', line 32

def start!(note)
  workflow_process.update(status: 'started', elapsed: 1.0, note:)
end

#workflow_processDor::Services::Client::Process

Returns for druid/workflow/step on which this instance was initialized.

Returns:

  • (Dor::Services::Client::Process)

    for druid/workflow/step on which this instance was initialized



18
19
20
# File 'lib/lyber_core/workflow.rb', line 18

def workflow_process
  @workflow_process ||= object_workflow.process(process)
end

#workflow_responseDor::Services::Response::Workflow

Returns for druid/workflow/step on which this instance was initialized.

Returns:

  • (Dor::Services::Response::Workflow)

    for druid/workflow/step on which this instance was initialized



23
24
25
# File 'lib/lyber_core/workflow.rb', line 23

def workflow_response
  @workflow_response ||= object_workflow.find
end