Current section

Files

Jump to
step_flow lib step_flow controllers step launch_params.ex
Raw

lib/step_flow/controllers/step/launch_params.ex

defmodule StepFlow.Step.LaunchParams do
@moduledoc """
The Step launching parameters.
"""
require Logger
alias StepFlow.Step.LaunchParams
defstruct [:workflow, :step, :dates, required_file: nil, first_file: nil, segment: nil]
def new(workflow, step, dates) do
%LaunchParams{workflow: workflow, step: step, dates: dates}
end
def new(workflow, step, dates, first_file) do
%LaunchParams{
workflow: workflow,
step: step,
dates: dates,
first_file: first_file
}
end
def new(workflow, step, dates, required_file, first_file) do
%LaunchParams{
workflow: workflow,
step: step,
dates: dates,
required_file: required_file,
first_file: first_file
}
end
def get_step_id(params) do
StepFlow.Map.get_by_key_or_atom(params.step, :id)
end
def get_step_name(params) do
StepFlow.Map.get_by_key_or_atom(params.step, :name)
end
def get_step_allow_failure(params) do
StepFlow.Map.get_by_key_or_atom(params.step, :allow_failure)
end
def get_step_parameter(params, key) do
StepFlow.Map.get_by_key_or_atom(params.step, :parameters)
|> Enum.filter(fn param ->
StepFlow.Map.get_by_key_or_atom(param, :id) == key
end)
|> List.first()
end
end