dotfiles/app/lib/prymn/messaging/messages.ex
Nikos Papadakis 59945bd2de
terminal
2024-02-02 20:53:52 +02:00

28 lines
713 B
Elixir

defmodule Prymn.Messaging.Messages.TerminalOutput do
defstruct [:id, :output]
end
# defmodule Prymn.Messaging.Messages.Health do
# defstruct [:cpu_status, :memory_status, :disk_status]
# end
defmodule Prymn.Messaging.Messages do
require Logger
alias Prymn.Messaging.Messages.TerminalOutput
@v1_prefix "agents.v1."
def handle_message(subject, payload) do
{_agent_id, subjects} = extract_subject(subject)
case subjects do
["health"] -> Jason.decode!(payload)
["terminal", id, "output"] -> %TerminalOutput{id: id, output: payload}
end
end
defp extract_subject(@v1_prefix <> rest) do
[agent_id | subjects] = String.split(rest, ".")
{agent_id, subjects}
end
end