Class: Thronglets::Workflow

Inherits:
Temporal::Workflow
  • Object
show all
Includes:
Concerns::AbstractClass, Concerns::Input, Concerns::Output
Defined in:
lib/thronglets/workflow.rb

Instance Attribute Summary collapse

Attributes included from Concerns::Output

#output_errors, #output_result

Attributes included from Concerns::Input

#input_errors, #input_result

Instance Method Summary collapse

Methods included from Concerns::Output

#validate_output!

Methods included from Concerns::Input

#validate_input!

Instance Attribute Details

#paramsObject (readonly)

Returns the value of attribute params.



8
9
10
# File 'lib/thronglets/workflow.rb', line 8

def params
  @params
end

Instance Method Details

#callObject



10
11
12
# File 'lib/thronglets/workflow.rb', line 10

def call
  raise "NotImplemented"
end

#execute(args) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/thronglets/workflow.rb', line 14

def execute(args)
  @params = validate_input!(args.as_json)

  data = call.as_json

  if output_schema
    validate_output!(data)
  else
    data
  end
rescue InputValidationError, OutputValidationError => e
  {
    errors: e.errors,
  }.as_json
end