Class: Camunda::Task

Inherits:
Model
  • Object
show all
Includes:
VariableSerialization
Defined in:
lib/camunda/task.rb

Defined Under Namespace

Classes: MissingTask

Class Method Summary collapse

Instance Method Summary collapse

Methods included from VariableSerialization

#serialize_variables

Methods inherited from Model

worker_id

Class Method Details

.find_by_business_key_and_task_definition_key!(instance_business_key, task_key) ⇒ Object



5
6
7
8
9
10
11
12
# File 'lib/camunda/task.rb', line 5

def self.find_by_business_key_and_task_definition_key!(instance_business_key, task_key)
  find_by(instanceBusinessKey: instance_business_key, taskDefinitionKey: task_key).tap do |ct|
    unless ct
      raise MissingTask, "Could not find Camunda Task with processInstanceBusinessKey: #{instance_business_key} " \
            "and taskDefinitionKey #{task_key}"
    end
  end
end

.mark_task_completed!(instance_business_key, task_key, variables = {}) ⇒ Object



14
15
16
17
# File 'lib/camunda/task.rb', line 14

def self.mark_task_completed!(instance_business_key, task_key, variables={})
  ct = find_by_business_key_and_task_definition_key!(instance_business_key, task_key)
  ct.complete! variables
end

Instance Method Details

#complete!(vars) ⇒ Object



19
20
21
22
23
24
# File 'lib/camunda/task.rb', line 19

def complete!(vars)
  self.class.post_raw("#{self.class.collection_path}/#{id}/complete", variables: serialize_variables(vars))[:response]
      .tap do |response|
    raise MissingTask unless response.success?
  end
end