defmodule VerkWeb.QueuesController do require Verk.QueueStats use VerkWeb.Web, :controller def index(conn, params) do render(conn, "index.html", queue_stats: Verk.QueueStats.all(params["search"] || ""), search: params["search"] ) end def show(conn, %{"queue" => queue}) do params = conn.params paginator = VerkWeb.RangePaginator.new(Verk.Queue.count!(queue), params["page"], params["per_page"]) render(conn, "show.html", queue: queue, enqueued_jobs: Verk.Queue.range!(queue, paginator.from, paginator.to), has_next: paginator.has_next, has_prev: paginator.has_prev, page: paginator.page, per_page: paginator.per_page ) end def busy(conn, %{"queue" => queue}) do running_jobs = Verk.WorkersManager.running_jobs(queue) render(conn, "busy.html", queue: queue, running_jobs: running_jobs) end def pause(conn, %{"queue" => queue}) do queue |> String.to_atom() |> Verk.pause_queue() redirect(conn, to: queues_path(conn, :index)) end def resume(conn, %{"queue" => queue}) do queue |> String.to_atom() |> Verk.resume_queue() redirect(conn, to: queues_path(conn, :index)) end end