philomena/lib/philomena_web/controllers/search/reverse_controller.ex

51 lines
1.4 KiB
Elixir
Raw Normal View History

2019-11-29 01:11:05 +01:00
defmodule PhilomenaWeb.Search.ReverseController do
use PhilomenaWeb, :controller
alias Philomena.DuplicateReports.SearchQuery
alias Philomena.DuplicateReports
alias Philomena.Interactions
2019-11-29 01:11:05 +01:00
2020-08-08 02:23:36 +02:00
plug PhilomenaWeb.ScraperCachePlug
2020-01-11 19:50:53 +01:00
plug PhilomenaWeb.ScraperPlug, params_key: "image", params_name: "image"
2019-11-29 01:11:05 +01:00
2020-01-11 19:50:53 +01:00
def index(conn, params) do
create(conn, params)
2019-11-29 01:11:05 +01:00
end
def create(conn, %{"image" => image_params})
when is_map(image_params) and image_params != %{} do
case DuplicateReports.execute_search_query(image_params) do
{:ok, images} ->
changeset = DuplicateReports.change_search_query(%SearchQuery{})
interactions = Interactions.user_interactions(images, conn.assigns.current_user)
render(conn, "index.html",
title: "Reverse Search",
layout_class: "layout--wide",
images: images,
changeset: changeset,
interactions: interactions
)
2019-11-29 01:11:05 +01:00
{:error, changeset} ->
render(conn, "index.html",
title: "Reverse Search",
layout_class: "layout--wide",
images: nil,
changeset: changeset
)
end
2020-01-11 19:50:53 +01:00
end
def create(conn, _params) do
changeset = DuplicateReports.change_search_query(%SearchQuery{})
render(conn, "index.html",
title: "Reverse Search",
layout_class: "layout--wide",
images: nil,
changeset: changeset
)
2020-01-11 19:50:53 +01:00
end
2019-12-16 20:24:38 +01:00
end