Packages
step_flow
0.0.13
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/controllers/workflow_controller.ex
defmodule StepFlow.WorkflowController do
use StepFlow, :controller
use BlueBird.Controller
require Logger
alias StepFlow.Repo
alias StepFlow.Step
alias StepFlow.Workflows
alias StepFlow.Workflows.Workflow
action_fallback(StepFlow.FallbackController)
def index(conn, params) do
workflows = Workflows.list_workflows(params)
conn
|> put_view(StepFlow.WorkflowView)
|> render("index.json", workflows: workflows)
end
def create(conn, workflow_params) do
case Workflows.create_workflow(workflow_params) do
{:ok, %Workflow{} = workflow} ->
Step.start_next(workflow)
StepFlow.Notification.send("new_workflow", %{workflow_id: workflow.id})
conn
|> put_status(:created)
|> put_view(StepFlow.WorkflowView)
|> render("show.json", workflow: workflow)
{:error, changeset} ->
conn
|> put_status(:unprocessable_entity)
|> put_view(StepFlow.ChangesetView)
|> render("error.json", changeset: changeset)
end
end
def show(conn, %{"id" => id}) do
workflow =
Workflows.get_workflow!(id)
|> Repo.preload(:jobs)
conn
|> put_view(StepFlow.WorkflowView)
|> render("show.json", workflow: workflow)
end
def get(conn, %{"identifier" => workflow_identifier} = _params) do
workflow =
case workflow_identifier do
_ -> %{}
end
conn
|> json(workflow)
end
def get(conn, _params) do
conn
|> json(%{})
end
def statistics(conn, params) do
scale = Map.get(params, "scale", "hour")
stats = Workflows.get_workflow_history(%{scale: scale})
conn
|> json(%{
data: stats
})
end
def update(conn, %{"id" => id, "workflow" => workflow_params}) do
workflow = Workflows.get_workflow!(id)
with {:ok, %Workflow{} = workflow} <- Workflows.update_workflow(workflow, workflow_params) do
conn
|> put_view(StepFlow.WorkflowView)
|> render("show.json", workflow: workflow)
end
end
def delete(conn, %{"id" => id}) do
workflow = Workflows.get_workflow!(id)
with {:ok, %Workflow{}} <- Workflows.delete_workflow(workflow) do
send_resp(conn, :no_content, "")
end
end
end