lib/step_flow/controllers/workflow_status_controller.ex
defmodule StepFlow.WorkflowStatusController do
use StepFlow, :controller
require Logger
alias StepFlow.Controller.Helpers
alias StepFlow.Workflows.Status
action_fallback(StepFlow.FallbackController)
def list(%Plug.Conn{assigns: %{current_user: user}} = conn, _params) do
status =
Status.StateEnum.__valid_values__()
|> Enum.filter(fn value -> is_bitstring(value) end)
if Helpers.has_right?("workflow", user, "view") do
conn
|> json(status)
else
conn
|> put_status(:forbidden)
|> json(%{reason: "Forbidden to view workflow status with this identifier"})
end
end
end