Merge branch 'search-return-only-groups' into 'master'

Search should return only groups, don't show user profiles

Closes #845

See merge request framasoft/mobilizon!1051
This commit is contained in:
Thomas Citharel 2021-08-23 10:10:22 +00:00
commit bcad13dd28
2 changed files with 10 additions and 4 deletions

View file

@ -94,9 +94,13 @@ defmodule Mobilizon.GraphQL.API.Search do
@spec process_from_username(String.t()) :: Page.t()
defp process_from_username(search) do
case ActivityPubActor.find_or_make_actor_from_nickname(search) do
{:ok, actor} ->
{:ok, %Actor{type: :Group} = actor} ->
%Page{total: 1, elements: [actor]}
# Don't return anything else than groups
{:ok, %Actor{}} ->
%Page{total: 0, elements: []}
{:error, _err} ->
Logger.debug(fn -> "Unable to find or make actor '#{search}'" end)

View file

@ -16,9 +16,11 @@ defmodule Mobilizon.GraphQL.API.SearchTest do
test "search an user by username" do
with_mock ActivityPubActor,
find_or_make_actor_from_nickname: fn "toto@domain.tld" -> {:ok, %Actor{id: 42}} end do
assert {:ok, %Page{total: 1, elements: [%Actor{id: 42}]}} ==
Search.search_actors(%{term: "toto@domain.tld"}, 1, 10, :Person)
find_or_make_actor_from_nickname: fn "toto@domain.tld" ->
{:ok, %Actor{id: 42, type: :Group}}
end do
assert {:ok, %Page{total: 1, elements: [%Actor{id: 42, type: :Group}]}} ==
Search.search_actors(%{term: "toto@domain.tld"}, 1, 10, :Group)
assert_called(ActivityPubActor.find_or_make_actor_from_nickname("toto@domain.tld"))
end