defmodule SyntropyWeb.Api.HistoryController do use SyntropyWeb, :controller alias SyntropyWeb.Api.{ControllerHelpers, HistoryJSON} @spec index(Plug.Conn.t(), map()) :: Plug.Conn.t() def index(conn, params) do limit = ControllerHelpers.limit(params) json(conn, %{data: Enum.map(Syntropy.recent_snapshots(limit), &HistoryJSON.snapshot/1)}) end @spec show(Plug.Conn.t(), map()) :: Plug.Conn.t() def show(conn, %{"id" => snapshot_id}) do case Syntropy.snapshot(snapshot_id) do nil -> ControllerHelpers.not_found(conn, "Snapshot", snapshot_id) snapshot -> json(conn, %{data: HistoryJSON.snapshot(snapshot)}) end end end