mirror of
https://github.com/philomena-dev/philomena.git
synced 2025-02-01 03:46:44 +01:00
Change ImageJson to view (#62)
This commit is contained in:
parent
21df6bc307
commit
b1de5389eb
5 changed files with 29 additions and 17 deletions
|
@ -1,7 +1,6 @@
|
||||||
defmodule PhilomenaWeb.Api.Json.Image.FeaturedController do
|
defmodule PhilomenaWeb.Api.Json.Image.FeaturedController do
|
||||||
use PhilomenaWeb, :controller
|
use PhilomenaWeb, :controller
|
||||||
|
|
||||||
alias PhilomenaWeb.ImageJson
|
|
||||||
alias Philomena.ImageFeatures.ImageFeature
|
alias Philomena.ImageFeatures.ImageFeature
|
||||||
alias Philomena.Images.Image
|
alias Philomena.Images.Image
|
||||||
alias Philomena.Repo
|
alias Philomena.Repo
|
||||||
|
@ -23,7 +22,9 @@ defmodule PhilomenaWeb.Api.Json.Image.FeaturedController do
|
||||||
|> text("")
|
|> text("")
|
||||||
|
|
||||||
_ ->
|
_ ->
|
||||||
json(conn, %{image: ImageJson.as_json(conn, featured_image)})
|
conn
|
||||||
|
|> put_view(PhilomenaWeb.Api.Json.ImageView)
|
||||||
|
|> render("show.json", image: featured_image)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
defmodule PhilomenaWeb.Api.Json.ImageController do
|
defmodule PhilomenaWeb.Api.Json.ImageController do
|
||||||
use PhilomenaWeb, :controller
|
use PhilomenaWeb, :controller
|
||||||
|
|
||||||
alias PhilomenaWeb.ImageJson
|
|
||||||
alias Philomena.Images.Image
|
alias Philomena.Images.Image
|
||||||
alias Philomena.Repo
|
alias Philomena.Repo
|
||||||
import Ecto.Query
|
import Ecto.Query
|
||||||
|
@ -20,7 +19,7 @@ defmodule PhilomenaWeb.Api.Json.ImageController do
|
||||||
|> text("")
|
|> text("")
|
||||||
|
|
||||||
_ ->
|
_ ->
|
||||||
json(conn, %{image: ImageJson.as_json(conn, image)})
|
render(conn, "show.json", image: image)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,7 +2,6 @@ defmodule PhilomenaWeb.Api.Json.Search.ImageController do
|
||||||
use PhilomenaWeb, :controller
|
use PhilomenaWeb, :controller
|
||||||
|
|
||||||
alias PhilomenaWeb.ImageLoader
|
alias PhilomenaWeb.ImageLoader
|
||||||
alias PhilomenaWeb.ImageJson
|
|
||||||
alias Philomena.ImageSorter
|
alias Philomena.ImageSorter
|
||||||
alias Philomena.Interactions
|
alias Philomena.Interactions
|
||||||
alias Philomena.Images.Image
|
alias Philomena.Images.Image
|
||||||
|
@ -22,11 +21,8 @@ defmodule PhilomenaWeb.Api.Json.Search.ImageController do
|
||||||
interactions = Interactions.user_interactions(images, user)
|
interactions = Interactions.user_interactions(images, user)
|
||||||
|
|
||||||
conn
|
conn
|
||||||
|> json(%{
|
|> put_view(PhilomenaWeb.Api.Json.ImageView)
|
||||||
images: Enum.map(images, &ImageJson.as_json(conn, &1)),
|
|> render("index.json", images: images, total: images.total_entries, interactions: interactions)
|
||||||
total: images.total_entries,
|
|
||||||
interactions: interactions
|
|
||||||
})
|
|
||||||
|
|
||||||
{:error, msg} ->
|
{:error, msg} ->
|
||||||
conn
|
conn
|
||||||
|
|
|
@ -2,20 +2,23 @@ defmodule PhilomenaWeb.Api.Json.Search.ReverseController do
|
||||||
use PhilomenaWeb, :controller
|
use PhilomenaWeb, :controller
|
||||||
|
|
||||||
alias PhilomenaWeb.ImageReverse
|
alias PhilomenaWeb.ImageReverse
|
||||||
alias PhilomenaWeb.ImageJson
|
alias Philomena.Interactions
|
||||||
|
|
||||||
plug :set_scraper_cache
|
plug :set_scraper_cache
|
||||||
plug PhilomenaWeb.ScraperPlug, params_key: "image", params_name: "image"
|
plug PhilomenaWeb.ScraperPlug, params_key: "image", params_name: "image"
|
||||||
|
|
||||||
def create(conn, %{"image" => image_params}) do
|
def create(conn, %{"image" => image_params}) do
|
||||||
|
user = conn.assigns.current_user
|
||||||
images =
|
images =
|
||||||
image_params
|
image_params
|
||||||
|> Map.put("distance", conn.params["distance"])
|
|> Map.put("distance", conn.params["distance"])
|
||||||
|> ImageReverse.images()
|
|> ImageReverse.images()
|
||||||
|> Enum.map(&ImageJson.as_json(conn, &1))
|
|
||||||
|
interactions = Interactions.user_interactions(images, user)
|
||||||
|
|
||||||
conn
|
conn
|
||||||
|> json(%{images: images})
|
|> put_view(PhilomenaWeb.Api.Json.ImageView)
|
||||||
|
|> render("index.json", images: images, total: length(images), interactions: interactions)
|
||||||
end
|
end
|
||||||
|
|
||||||
defp set_scraper_cache(conn, _opts) do
|
defp set_scraper_cache(conn, _opts) do
|
||||||
|
|
|
@ -1,7 +1,20 @@
|
||||||
defmodule PhilomenaWeb.ImageJson do
|
defmodule PhilomenaWeb.Api.Json.ImageView do
|
||||||
|
use PhilomenaWeb, :view
|
||||||
alias PhilomenaWeb.ImageView
|
alias PhilomenaWeb.ImageView
|
||||||
|
|
||||||
def as_json(_conn, %{hidden_from_users: true, duplicate_id: duplicate_id} = image)
|
def render("index.json", %{images: images, interactions: interactions, total: total} = assigns) do
|
||||||
|
%{
|
||||||
|
images: render_many(images, PhilomenaWeb.Api.Json.ImageView, "image.json", assigns),
|
||||||
|
interactions: interactions,
|
||||||
|
total: total
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
def render("show.json", %{image: image} = assigns) do
|
||||||
|
%{image: render_one(image, PhilomenaWeb.Api.Json.ImageView, "image.json", assigns)}
|
||||||
|
end
|
||||||
|
|
||||||
|
def render("image.json", %{image: %{hidden_from_users: true, duplicate_id: duplicate_id} = image})
|
||||||
when not is_nil(duplicate_id) do
|
when not is_nil(duplicate_id) do
|
||||||
%{
|
%{
|
||||||
id: image.id,
|
id: image.id,
|
||||||
|
@ -14,7 +27,7 @@ defmodule PhilomenaWeb.ImageJson do
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
def as_json(_conn, %{hidden_from_users: true} = image) do
|
def render("image.json", %{image: %{hidden_from_users: true} = image}) do
|
||||||
%{
|
%{
|
||||||
id: image.id,
|
id: image.id,
|
||||||
created_at: image.created_at,
|
created_at: image.created_at,
|
||||||
|
@ -26,7 +39,7 @@ defmodule PhilomenaWeb.ImageJson do
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
def as_json(conn, %{hidden_from_users: false} = image) do
|
def render("image.json", %{conn: conn, image: %{hidden_from_users: false} = image}) do
|
||||||
%{
|
%{
|
||||||
id: image.id,
|
id: image.id,
|
||||||
created_at: image.created_at,
|
created_at: image.created_at,
|
Loading…
Reference in a new issue