replace Repo.get_by(User, nickname: nickname) with User.get_by_nickname(nickname)

This commit is contained in:
Egor Kislitsyn 2019-04-02 17:47:02 +07:00
parent 11c2d6bdc4
commit 88d3cb44c3
3 changed files with 6 additions and 27 deletions

View file

@ -3,9 +3,7 @@
# SPDX-License-Identifier: AGPL-3.0-only # SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Plugs.UserFetcherPlug do defmodule Pleroma.Plugs.UserFetcherPlug do
alias Pleroma.Repo
alias Pleroma.User alias Pleroma.User
import Plug.Conn import Plug.Conn
def init(options) do def init(options) do
@ -14,26 +12,10 @@ def init(options) do
def call(conn, _options) do def call(conn, _options) do
with %{auth_credentials: %{username: username}} <- conn.assigns, with %{auth_credentials: %{username: username}} <- conn.assigns,
{:ok, %User{} = user} <- user_fetcher(username) do %User{} = user <- User.get_by_nickname_or_email(username) do
conn assign(conn, :auth_user, user)
|> assign(:auth_user, user)
else else
_ -> conn _ -> conn
end end
end end
defp user_fetcher(username_or_email) do
{
:ok,
cond do
# First, try logging in as if it was a name
user = Repo.get_by(User, %{nickname: username_or_email}) ->
user
# If we get nil, we try using it as an email
user = Repo.get_by(User, %{email: username_or_email}) ->
user
end
}
end
end end

View file

@ -755,7 +755,7 @@ def follow(%{assigns: %{user: follower}} = conn, %{"id" => id}) do
end end
def follow(%{assigns: %{user: follower}} = conn, %{"uri" => uri}) do def follow(%{assigns: %{user: follower}} = conn, %{"uri" => uri}) do
with %User{} = followed <- Repo.get_by(User, nickname: uri), with %User{} = followed <- User.get_by_nickname(uri),
{:ok, follower, followed, _} <- CommonAPI.follow(follower, followed) do {:ok, follower, followed, _} <- CommonAPI.follow(follower, followed) do
conn conn
|> put_view(AccountView) |> put_view(AccountView)

View file

@ -227,12 +227,9 @@ def get_user(user \\ nil, params) do
end end
%{"screen_name" => nickname} -> %{"screen_name" => nickname} ->
case target = Repo.get_by(User, nickname: nickname) do case User.get_by_nickname(nickname) do
nil -> nil -> {:error, "No user with such screen_name"}
{:error, "No user with such screen_name"} target -> {:ok, target}
_ ->
{:ok, target}
end end
_ -> _ ->