20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
# File 'app/graphql/tasker/mutations/create_task.rb', line 20
def resolve(**task_params)
context = JSON.parse(task_params.fetch(:context, '{}'))
task_request = Tasker::Types::TaskRequest.new(task_params.merge({ context: context }))
task = nil
begin
handler = handler_factory.get(
task_request.name,
namespace_name: task_request.namespace || Tasker::NamedTask::DEFAULT_NAMESPACE,
version: task_request.version || Tasker::NamedTask::DEFAULT_VERSION
)
task = handler.initialize_task!(task_request)
rescue Tasker::ProceduralError => e
task = Tasker::Task.new
task.errors.add(:name, e.to_s)
end
if task.errors.empty?
Tasker::TaskSerializer.new(task).to_hash
else
{ task: nil, errors: task.errors }
end
end
|