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