mirror of
https://github.com/philomena-dev/philomena.git
synced 2024-11-27 13:47:58 +01:00
24 lines
890 B
Elixir
24 lines
890 B
Elixir
defmodule PhilomenaWeb.SearchController do
|
|
use PhilomenaWeb, :controller
|
|
|
|
alias PhilomenaWeb.ImageLoader
|
|
alias Philomena.ImageSorter
|
|
alias Philomena.Interactions
|
|
|
|
def index(conn, params) do
|
|
user = conn.assigns.current_user
|
|
sort = ImageSorter.parse_sort(params)
|
|
|
|
case ImageLoader.search_string(conn, params["q"], sorts: sort.sorts, queries: sort.queries, constant_score: sort.constant_score) do
|
|
{:ok, {images, tags}} ->
|
|
interactions =
|
|
Interactions.user_interactions(images, user)
|
|
|
|
conn
|
|
|> render("index.html", title: "Searching for #{params["q"]}", images: images, tags: tags, search_query: params["q"], interactions: interactions, layout_class: "layout--wide")
|
|
|
|
{:error, msg} ->
|
|
render(conn, "index.html", title: "Searching for #{params["q"]}", images: [], error: msg, search_query: params["q"])
|
|
end
|
|
end
|
|
end
|