defmodule SyntropyWeb.Api.StatusController do use SyntropyWeb, :controller alias Syntropy.RuntimeStatus @spec health(Plug.Conn.t(), map()) :: Plug.Conn.t() def health(conn, _params) do json(conn, %{data: RuntimeStatus.health()}) end @spec ready(Plug.Conn.t(), map()) :: Plug.Conn.t() def ready(conn, _params) do report = RuntimeStatus.readiness() conn |> put_status(readiness_status(report.status)) |> json(%{data: report}) end defp readiness_status("ready"), do: :ok defp readiness_status(_status), do: :service_unavailable end