Current section
Files
Jump to
Current section
Files
lib/railway_ui_web/controllers/published_message_controller.ex
defmodule RailwayUiWeb.PublishedMessageController do
use RailwayUiWeb, :controller
alias RailwayUi.PublishedMessage
@railway_ipc Application.get_env(:railway_ui, :railway_ipc, RailwayIpc)
def index(conn, _params) do
render(conn, "index.html", messages: PublishedMessage.all())
end
def republish(conn, %{"uuid" => uuid}) do
case @railway_ipc.republish_message(uuid, request_data(conn)) do
:ok ->
conn
|> put_flash(:info, "Sucessfully republished message with uuid: #{uuid}")
|> redirect(to: Routes.published_message_path(conn, :index))
{:error, error} ->
conn
|> put_flash(
:error,
"Failed to republish message with uuid: #{uuid}. Reason: #{inspect(error)}"
)
|> redirect(to: Routes.published_message_path(conn, :index))
end
end
def request_data(conn) do
current_user_uuid = get_session(conn, :current_user_uuid)
%{
correlation_id: Ecto.UUID.generate(),
current_user: %{
learn_uuid: current_user_uuid
}
}
end
end