Module: BpmManager::RedHat

Defined in:
lib/bpm_manager/red_hat.rb

Class Method Summary collapse

Class Method Details

.assign_task(task_id, user_id) ⇒ Object

Assigns a Task for an User



42
43
44
# File 'lib/bpm_manager/red_hat.rb', line 42

def self.assign_task(task_id, user_id)
  RestClient.post(URI.encode(BpmManager.uri('/task/' + task_id.to_s + '/delegate?targetEntityId=' + user_id.to_s)), :headers => {:content_type => :json, :accept => :json})
end

.complete_task(task_id, opts = {}) ⇒ Object

Completes a Task



77
78
79
# File 'lib/bpm_manager/red_hat.rb', line 77

def self.complete_task(task_id, opts = {})
  RestClient.post(URI.encode(BpmManager.uri('/task/' + task_id.to_s + '/complete')), :headers => {:content_type => :json, :accept => :json})
end

.deploymentsObject

Gets all server deployments



8
9
10
# File 'lib/bpm_manager/red_hat.rb', line 8

def self.deployments()
  return JSON.parse(RestClient.get(BpmManager.uri('/deployment'), :accept => :json))
end

.exit_task(task_id) ⇒ Object

Exits a Task



87
88
89
# File 'lib/bpm_manager/red_hat.rb', line 87

def self.exit_task(task_id)
  RestClient.post(URI.encode(BpmManager.uri('/task/' + task_id.to_s + '/exit')), :headers => {:content_type => :json, :accept => :json})
end

.fail_task(task_id) ⇒ Object

Fails a Task



82
83
84
# File 'lib/bpm_manager/red_hat.rb', line 82

def self.fail_task(task_id)
  RestClient.post(URI.encode(BpmManager.uri('/task/' + task_id.to_s + '/fail')), :headers => {:content_type => :json, :accept => :json})
end

.process_instance(process_instance_id) ⇒ Object

Gets a Process Instance



28
29
30
# File 'lib/bpm_manager/red_hat.rb', line 28

def self.process_instance(process_instance_id)
  JSON.parse(RestClient.get(BpmManager.uri('/history/instance/' + process_instance_id.to_s), :accept => :json))
end

.process_instance_variables(deployment_id, process_instance_id) ⇒ Object

Gets a Process Instance Variables



33
34
35
36
37
38
39
# File 'lib/bpm_manager/red_hat.rb', line 33

def self.process_instance_variables(deployment_id, process_instance_id)
  begin
    JSON.parse(RestClient.get(BpmManager.uri('/runtime/' + deployment_id.to_s + '/withvars/process/instance/' + process_instance_id.to_s), :accept => :json))['variables']
  rescue
    return nil
  end
end

.process_instancesObject

Gets all Process Instances



23
24
25
# File 'lib/bpm_manager/red_hat.rb', line 23

def self.process_instances
  JSON.parse(RestClient.get(BpmManager.uri('/history/instances'), :accept => :json))
end

.release_task(task_id) ⇒ Object

Releases a Task



52
53
54
# File 'lib/bpm_manager/red_hat.rb', line 52

def self.release_task(task_id)
  RestClient.post(URI.encode(BpmManager.uri('/task/' + task_id.to_s + '/release')), :headers => {:content_type => :json, :accept => :json})
end

.resume_task(task_id) ⇒ Object

Resumes a Task



67
68
69
# File 'lib/bpm_manager/red_hat.rb', line 67

def self.resume_task(task_id)
  RestClient.post(URI.encode(BpmManager.uri('/task/' + task_id.to_s + '/resumes')), :headers => {:content_type => :json, :accept => :json})
end

.skip_task(task_id) ⇒ Object

Skips a Task



72
73
74
# File 'lib/bpm_manager/red_hat.rb', line 72

def self.skip_task(task_id)
  RestClient.post(URI.encode(BpmManager.uri('/task/' + task_id.to_s + '/skip')), :headers => {:content_type => :json, :accept => :json})
end

.start_task(task_id) ⇒ Object

Starts a Task



47
48
49
# File 'lib/bpm_manager/red_hat.rb', line 47

def self.start_task(task_id)
  RestClient.post(URI.encode(BpmManager.uri('/task/' + task_id.to_s + '/start')), :headers => {:content_type => :json, :accept => :json})
end

.stop_task(task_id) ⇒ Object

Stops a Task



57
58
59
# File 'lib/bpm_manager/red_hat.rb', line 57

def self.stop_task(task_id)
  RestClient.post(URI.encode(BpmManager.uri('/task/' + task_id.to_s + '/stop')), :headers => {:content_type => :json, :accept => :json})
end

.structure_task_data(input) ⇒ Object



92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# File 'lib/bpm_manager/red_hat.rb', line 92

def self.structure_task_data(input)
  tasks = []
  
  unless input['taskSummaryList'].nil?
    input['taskSummaryList'].each do |task|
      my_task = OpenStruct.new
      my_task.process = OpenStruct.new
      my_task.id = task['task-summary']['id']
      my_task.process_instance_id = task['task-summary']['process-instance-id']
      my_task.parent_id = task['task-summary']['parent_id']
      my_task.created_on = Time.at(task['task-summary']['created-on']/1000)
      my_task.active_on = Time.at(task['task-summary']['activation-time']/1000)
      my_task.name = task['task-summary']['name']
      my_task.owner = task['task-summary']['actual-owner']
      my_task.status = task['task-summary']['status']
      my_task.subject = task['task-summary']['subject']
      my_task.description = task['task-summary']['description']
      my_task.data = task['task-summary']
      my_task.process.data = self.process_instance(task['task-summary']['process-instance-id'])
      my_task.process.deployment_id = task['task-summary']['deployment-id']
      my_task.process.id = my_task.process.data['process-id']
      my_task.process.instance_id = my_task.process.data['process-instance-id']
      my_task.process.start_on = Time.at(my_task.process.data['start']/1000)
      my_task.process.name = my_task.process.data['process-name']
      my_task.process.version = my_task.process.data['process-version']
      my_task.process.creator = my_task.process.data['identity']
      my_task.process.variables = self.process_instance_variables(my_task.process.deployment_id, my_task.process.instance_id)
      tasks << my_task
    end
  end
  
  return tasks
end

.suspend_task(task_id) ⇒ Object

Suspends a Task



62
63
64
# File 'lib/bpm_manager/red_hat.rb', line 62

def self.suspend_task(task_id)
  RestClient.post(URI.encode(BpmManager.uri('/task/' + task_id.to_s + '/suspend')), :headers => {:content_type => :json, :accept => :json})
end

.tasks(user_id = "") ⇒ Object

Gets all tasks, optionally you could specify an user id



13
14
15
# File 'lib/bpm_manager/red_hat.rb', line 13

def self.tasks(user_id = "")
  self.structure_task_data(JSON.parse(RestClient.get(BpmManager.uri('/task/query' + (user_id.empty? ? '' : '?taskOwner=' + user_id)), :accept => :json)))
end

.tasks_with_opts(opts = {}) ⇒ Object

Gets all tasks with options



18
19
20
# File 'lib/bpm_manager/red_hat.rb', line 18

def self.tasks_with_opts(opts = {})
  self.structure_task_data(JSON.parse(RestClient.get(BpmManager.uri('/task/query' + (opts.empty? ? '' : '?' + opts.map{|k,v| k.to_s + '=' + v.to_s}.join('&'))), :accept => :json)))
end