Packages
step_flow
1.0.0-rc8
1.9.0-rc2
1.9.0-rc1
1.9.0-rc0
1.8.2
1.8.1
1.8.1-rc8
1.8.1-rc7
1.8.1-rc6
1.8.1-rc5
1.8.1-rc4
1.8.1-rc3
1.8.1-rc2
1.8.1-rc1
1.8.1-rc0
1.8.0
1.8.0-rc3
1.8.0-rc2
1.8.0-rc1
1.8.0-rc0
1.7.3
1.7.3-rc4
1.7.3-rc3
1.7.3-rc2
1.7.3-rc1
1.7.3-rc0
1.7.2
1.7.2-rc4
1.7.2-rc3
1.7.2-rc2
1.7.2-rc1
1.7.2-rc0
1.7.1
1.7.0
1.7.0-rc1
1.7.0-rc0
1.6.1
1.6.1-rc1
1.6.1-rc0
1.6.0
1.6.0-rc9
1.6.0-rc8
1.6.0-rc7
1.6.0-rc6
1.6.0-rc5
1.6.0-rc4
1.6.0-rc3
1.6.0-rc20
1.6.0-rc2
1.6.0-rc19
1.6.0-rc18
1.6.0-rc17
1.6.0-rc16
1.6.0-rc15
1.6.0-rc14
1.6.0-rc13
1.6.0-rc12
1.6.0-rc11
1.6.0-rc10
1.6.0-rc1
1.5.0
1.5.0-rc1
1.4.2-rc2
1.4.2-rc1
1.4.1
1.4.1-rc1
1.4.0
1.4.0-rc4
1.4.0-rc3
1.4.0-rc2
1.4.0-rc1
1.3.1
1.3.0
1.3.0-rc
1.2.0
1.1.0
1.0.0
1.0.0-rc9
1.0.0-rc8
1.0.0-rc7
1.0.0-rc6
1.0.0-rc5
1.0.0-rc1
0.2.13
0.2.12
0.2.11
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
0.0.24
0.0.23
0.0.22
0.0.21
0.0.20
0.0.19
0.0.18
0.0.17
0.0.16
0.0.15
0.0.14
0.0.13
0.0.12
0.0.11
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.4
0.0.3
0.0.2
0.0.1
Step flow manager for Elixir applications
Current section
Files
Jump to
Current section
Files
lib/step_flow/worker_definitions/worker_definitions.ex
defmodule StepFlow.WorkerDefinitions do
@moduledoc """
The WorkerDefinitions context.
"""
import Ecto.Query, warn: false
alias StepFlow.Repo
alias StepFlow.WorkerDefinitions.WorkerDefinition
@doc """
Returns the list of WorkerDefinitions.
## Examples
iex> StepFlow.WorkerDefinitions.list_worker_definitions()
%{data: [], page: 0, size: 10, total: 0}
"""
def list_worker_definitions(params \\ %{}) do
page =
Map.get(params, "page", 0)
|> StepFlow.Integer.force()
size =
Map.get(params, "size", 10)
|> StepFlow.Integer.force()
offset = page * size
query = from(worker_definition in WorkerDefinition)
total_query = from(item in query, select: count(item.id))
total =
Repo.all(total_query)
|> List.first()
query =
from(
job in query,
order_by: [desc: :inserted_at],
offset: ^offset,
limit: ^size
)
jobs = Repo.all(query)
%{
data: jobs,
total: total,
page: page,
size: size
}
end
@doc """
Gets a single WorkerDefinition.
Raises `Ecto.NoResultsError` if the WorkerDefinition does not exist.
"""
def get_worker_definition!(id), do: Repo.get!(WorkerDefinition, id)
@doc """
Creates a WorkerDefinition.
## Examples
iex> result = StepFlow.WorkerDefinitions.create_worker_definition(%{
...> queue_name: "my_queue",
...> label: "My Queue",
...> version: "1.2.3",
...> short_description: "short description",
...> description: "long description",
...> parameters: %{}
...> })
...> match?({:ok, %StepFlow.WorkerDefinitions.WorkerDefinition{}}, result)
true
iex> result = StepFlow.WorkerDefinitions.create_worker_definition(%{field: :bad_value})
...> match?({:error, %Ecto.Changeset{}}, result)
true
"""
def create_worker_definition(attrs \\ %{}) do
%WorkerDefinition{}
|> WorkerDefinition.changeset(attrs)
|> Repo.insert()
end
def exists(%{"queue_name" => queue_name, "version" => version}) do
case Repo.get_by(WorkerDefinition, queue_name: queue_name, version: version) do
nil -> false
_ -> true
end
end
def exists(_), do: false
end