Packages

A Fair Source multi-agent runtime with deterministic agent scoring and replayable run history.

Retired package: Deprecated - superseded — operator console moved to the Syntropy app

Current section

Files

Jump to
syntropy lib syntropy_web controllers api recommendation_controller.ex
Raw

lib/syntropy_web/controllers/api/recommendation_controller.ex

defmodule SyntropyWeb.Api.RecommendationController do
use SyntropyWeb, :controller
alias SyntropyWeb.Api.{ControllerHelpers, RecommendationJSON}
@spec index(Plug.Conn.t(), map()) :: Plug.Conn.t()
def index(conn, params) do
limit = ControllerHelpers.limit(params)
recommendations =
Syntropy.recent_recommendations(limit)
|> Enum.map(&RecommendationJSON.recommendation/1)
json(conn, %{data: recommendations})
end
@spec show(Plug.Conn.t(), map()) :: Plug.Conn.t()
def show(conn, %{"id" => recommendation_id}) do
case Syntropy.recommendation(recommendation_id) do
nil -> ControllerHelpers.not_found(conn, "Recommendation", recommendation_id)
recommendation -> json(conn, %{data: RecommendationJSON.recommendation(recommendation)})
end
end
end