diff options
author | Ivan Tashkinov <ivantashkinov@gmail.com> | 2018-12-07 11:04:39 +0300 |
---|---|---|
committer | Ivan Tashkinov <ivantashkinov@gmail.com> | 2018-12-07 11:04:39 +0300 |
commit | 6ed5044c4e1889a51a1dc6015b602759b83fc3b7 (patch) | |
tree | 3a356678cb78ae822a704b95eed66e16221cb173 /lib | |
parent | 7a2162bbcb2e3a64ed6b56229311aa9fd487351a (diff) | |
download | pleroma-6ed5044c4e1889a51a1dc6015b602759b83fc3b7.tar.gz |
[#394] Refactoring (using Ecto.Multi; "untag" route change).
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/user.ex | 16 | ||||
-rw-r--r-- | lib/pleroma/web/router.ex | 2 |
2 files changed, 7 insertions, 11 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 3984e610e..511e6956e 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -2,6 +2,7 @@ defmodule Pleroma.User do use Ecto.Schema import Ecto.{Changeset, Query} + alias Ecto.Multi alias Pleroma.{Repo, User, Object, Web, Activity, Notification} alias Comeonin.Pbkdf2 alias Pleroma.Formatter @@ -844,18 +845,13 @@ defmodule Pleroma.User do |> List.flatten() |> Enum.map(&String.downcase(&1)) - Repo.transaction(fn -> - for user <- users do + multi = + Enum.reduce(users, Multi.new(), fn user, multi -> new_tags = mutate_tags(user, tags, action) + Multi.update(multi, {:user, user.id}, change(user, %{tags: new_tags})) + end) - {:ok, updated_user} = - user - |> change(%{tags: new_tags}) - |> Repo.update() - - updated_user - end - end) + Repo.transaction(multi) end defp mutate_tags(user, tags, :tag), do: Enum.uniq(user.tags ++ tags) diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index ae942701e..a07607366 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -99,7 +99,7 @@ defmodule Pleroma.Web.Router do delete("/user", AdminAPIController, :user_delete) post("/user", AdminAPIController, :user_create) put("/users/tag", AdminAPIController, :tag_users) - put("/users/untag", AdminAPIController, :untag_users) + delete("/users/tag", AdminAPIController, :untag_users) get("/permission_group/:nickname", AdminAPIController, :right_get) get("/permission_group/:nickname/:permission_group", AdminAPIController, :right_get) |