Class: Interaction::ResultCreation

Inherits:
Object
  • Object
show all
Defined in:
lib/interaction/result_creation.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ ResultCreation

Returns a new instance of ResultCreation.



5
6
7
8
9
10
# File 'lib/interaction/result_creation.rb', line 5

def initialize(params)
  @errors = []
  @substitution_values = params[:substitution_values]
  @owner = params[:owner]
  @query_version = get_query_version(params)
end

Instance Attribute Details

#errorsObject

Returns the value of attribute errors.



3
4
5
# File 'lib/interaction/result_creation.rb', line 3

def errors
  @errors
end

Instance Method Details

#executeObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/interaction/result_creation.rb', line 12

def execute
  compiler_result = @query_version.compile(substitution_values: @substitution_values)

  if compiler_result.error
    @errors << compiler_result.error.message
    return
  end

  result = Result.new(
    status: 'enqueued',
    parameters: compiler_result.effective_values,
    compiled_body: compiler_result.body,
    owner: @owner
  )

  result.query_version = @query_version if @query_version.persisted?

  result.save
  @errors << result.errors.full_messages if result.errors.any?

  result
end