Skip to content

Commit

Permalink
Search created rooms
Browse files Browse the repository at this point in the history
  • Loading branch information
keianhzo committed Apr 2, 2024
1 parent efea757 commit 502c6e2
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 4 deletions.
14 changes: 10 additions & 4 deletions lib/ret/media_search.ex
Original file line number Diff line number Diff line change
Expand Up @@ -125,8 +125,14 @@ defmodule Ret.MediaSearch do
public_rooms_search(cursor, q)
end

def search(%Ret.MediaSearchQuery{source: "rooms", filter: "created", cursor: cursor, q: q}) do
created_rooms_search(cursor, q)
def search(%Ret.MediaSearchQuery{
source: "rooms",
filter: "created",
cursor: cursor,
user: account_id,
q: q
}) do
created_rooms_search(cursor, account_id, q)
end

def search(%Ret.MediaSearchQuery{
Expand Down Expand Up @@ -551,11 +557,11 @@ defmodule Ret.MediaSearch do
{:commit, results}
end

defp created_rooms_search(cursor, _query) do
defp created_rooms_search(cursor, account_id, _query) do
page_number = (cursor || "1") |> Integer.parse() |> elem(0)

ecto_query =
from h in Hub,
where: h.created_by_account_id == ^account_id,
preload: [
scene: [:screenshot_owned_file],
scene_listing: [:scene, :screenshot_owned_file]
Expand Down
21 changes: 21 additions & 0 deletions lib/ret_web/controllers/api/v1/media_search_controller.ex
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,27 @@ defmodule RetWeb.Api.V1.MediaSearchController do
use RetWeb, :controller
use Retry

def index(conn, %{"source" => source, "filter" => "created", "user" => user} = params)
when source in ["rooms"] do
account = conn |> Guardian.Plug.current_resource()

if account && account.account_id == String.to_integer(user) do
{:commit, results} =
%Ret.MediaSearchQuery{
source: "rooms",
cursor: params["cursor"] || "1",
user: account.account_id,
filter: "created",
q: params["q"]
}
|> Ret.MediaSearch.search()

conn |> render("index.json", results: results)
else
conn |> send_resp(401, "You can only search created rooms for your own account.")
end
end

def index(conn, %{"source" => "rooms"} = params) do
{:commit, results} =
%Ret.MediaSearchQuery{
Expand Down

0 comments on commit 502c6e2

Please sign in to comment.