module Cadence::Metadata

Constants

ACTIVITY_TYPE
DECISION_TYPE
WORKFLOW_TYPE

Public Class Methods

generate(type, data, domain = nil) click to toggle source
# File lib/cadence/metadata.rb, line 13
def generate(type, data, domain = nil)
  case type
  when ACTIVITY_TYPE
    activity_metadata_from(data, domain)
  when DECISION_TYPE
    decision_metadata_from(data, domain)
  when WORKFLOW_TYPE
    workflow_metadata_from(data)
  else
    raise InternalError, 'Unsupported metadata type'
  end
end

Private Class Methods

activity_metadata_from(task, domain) click to toggle source
# File lib/cadence/metadata.rb, line 28
def activity_metadata_from(task, domain)
  Metadata::Activity.new(
    domain: domain,
    id: task.activityId,
    name: task.activityType.name,
    task_token: task.taskToken,
    attempt: task.attempt,
    workflow_run_id: task.workflowExecution.runId,
    workflow_id: task.workflowExecution.workflowId,
    workflow_name: task.workflowType.name,
    headers: task.header&.fields || {},
    timeouts: {
      start_to_close: task.startToCloseTimeoutSeconds,
      schedule_to_close: task.scheduleToCloseTimeoutSeconds,
      heartbeat: task.heartbeatTimeoutSeconds
    }
  )
end
decision_metadata_from(task, domain) click to toggle source
# File lib/cadence/metadata.rb, line 47
def decision_metadata_from(task, domain)
  Metadata::Decision.new(
    domain: domain,
    id: task.startedEventId,
    task_token: task.taskToken,
    attempt: task.attempt,
    workflow_run_id: task.workflowExecution.runId,
    workflow_id: task.workflowExecution.workflowId,
    workflow_name: task.workflowType.name
  )
end
workflow_metadata_from(event) click to toggle source
# File lib/cadence/metadata.rb, line 59
def workflow_metadata_from(event)
  Metadata::Workflow.new(
    name: event.workflowType.name,
    run_id: event.originalExecutionRunId,
    attempt: event.attempt,
    headers: event.header&.fields || {},
    timeouts: {
      execution: event.executionStartToCloseTimeoutSeconds,
      task: event.taskStartToCloseTimeoutSeconds
    }
  )
end