defmodule PhilomenaWeb.Api.Json.ImageController do
  use PhilomenaWeb, :controller

  alias PhilomenaWeb.ImageJson
  alias Philomena.Images.Image
  alias Philomena.Repo
  import Ecto.Query

  def show(conn, %{"id" => id}) do
    image =
      Image
      |> where(id: ^id)
      |> preload([:tags, :user, :intensity])
      |> Repo.one()

    case image do
      nil ->
        conn
        |> put_status(:not_found)
        |> text("")

      _ ->
        json(conn, %{image: ImageJson.as_json(conn, image)})
    end
  end
end