Packages
journey
0.10.23
0.10.58
0.10.57
0.10.56
0.10.55
0.10.54
0.10.53
0.10.52
0.10.51
0.10.50
0.10.49
0.10.48
0.10.47
0.10.46
0.10.45
0.10.44
0.10.43
0.10.41
0.10.40
0.10.39
0.10.38
0.10.37
0.10.36
0.10.35
0.10.34
0.10.33
0.10.32
0.10.31
0.10.30
0.10.29
0.10.28
0.10.27
0.10.26
0.10.25
0.10.24
0.10.23
0.10.22
0.0.9
retired
0.0.8
0.0.7
0.0.6
0.0.5
0.0.3
0.0.2
Journey is a library for defining and running durable workflows with persistence, reliability, and scalability.
Current section
Files
Jump to
Current section
Files
lib/journey/graph.ex
defmodule Journey.Graph do
@moduledoc false
import Journey.Node, only: [input: 1]
defstruct [:name, :version, :nodes]
@type t :: %__MODULE__{name: String.t(), nodes: list}
def new(name, version, nodes)
when is_binary(name) and is_binary(version) and is_list(nodes) do
%__MODULE__{
name: name,
version: version,
nodes: [input(:execution_id), input(:last_updated_at)] ++ nodes
}
end
def find_node_by_name(nil, node_name) when is_atom(node_name) do
nil
end
def find_node_by_name(graph, node_name) when is_struct(graph, Journey.Graph) and is_atom(node_name) do
graph.nodes
|> Enum.find(fn n -> n.name == node_name end)
end
end