59 lines
1.2 KiB
Elixir
59 lines
1.2 KiB
Elixir
defmodule AprsWeb.PageController do
|
|
use AprsWeb, :controller
|
|
|
|
def home(conn, _params) do
|
|
render(conn, :home)
|
|
end
|
|
|
|
def map(conn, _params) do
|
|
render(conn, :map)
|
|
end
|
|
|
|
def packets(conn, _params) do
|
|
render(conn, :packets)
|
|
end
|
|
|
|
def health(conn, _params) do
|
|
# Check database connection
|
|
db_healthy =
|
|
try do
|
|
Aprs.Repo.query!("SELECT 1")
|
|
true
|
|
rescue
|
|
_ -> false
|
|
end
|
|
|
|
# Get application version
|
|
version = :aprs |> Application.spec(:vsn) |> List.to_string()
|
|
|
|
if db_healthy do
|
|
json(conn, %{
|
|
status: "ok",
|
|
version: version,
|
|
database: "connected",
|
|
timestamp: DateTime.utc_now()
|
|
})
|
|
else
|
|
conn
|
|
|> put_status(503)
|
|
|> json(%{
|
|
status: "error",
|
|
version: version,
|
|
database: "disconnected",
|
|
timestamp: DateTime.utc_now()
|
|
})
|
|
end
|
|
end
|
|
|
|
def ready(conn, _params) do
|
|
# Simple readiness check without database dependency
|
|
# This is faster for startup health checks
|
|
version = :aprs |> Application.spec(:vsn) |> List.to_string()
|
|
|
|
json(conn, %{
|
|
status: "ready",
|
|
version: version,
|
|
timestamp: DateTime.utc_now()
|
|
})
|
|
end
|
|
end
|