Fix note count update.
authorlain <lain@soykaf.club>
Sun, 18 Nov 2018 17:52:21 +0000 (18:52 +0100)
committerlain <lain@soykaf.club>
Sun, 18 Nov 2018 17:52:21 +0000 (18:52 +0100)
lib/pleroma/user.ex
lib/pleroma/user/info.ex
test/user_test.exs

index 64b6c0aa1c090d354779a36d4e5ae8bcbd892745..b3d0712d417cbc2ae66bedb0a54326d661cb3ea6 100644 (file)
@@ -440,11 +440,13 @@ defmodule Pleroma.User do
 
     note_count = Repo.one(note_count_query)
 
-    new_info = Map.put(user.info, "note_count", note_count)
+    info_cng = User.Info.set_note_count(user.info, note_count)
 
-    cs = info_changeset(user, %{info: new_info})
+    cng =
+      change(user)
+      |> put_embed(:info, info_cng)
 
-    update_and_set_cache(cs)
+    update_and_set_cache(cng)
   end
 
   def update_follower_count(%User{} = user) do
index cae5562f02b5b59c53208f8fcfe0bd713f2cdc12..619e58b163ef27391b18c4a90cde61e16b50958a 100644 (file)
@@ -27,6 +27,10 @@ defmodule Pleroma.User.Info do
   end
 
   def add_to_note_count(info, number) do
+    set_note_count(info, info.note_count + number)
+  end
+
+  def set_note_count(info, number) do
     params = %{note_count: Enum.max([0, number])}
 
     info
index fdc908dcdb2e684e21fd072bdb15b2a8034a5436..3d330b9632278909fa787b8ccc3f1b04d29479a4 100644 (file)
@@ -311,11 +311,11 @@ defmodule Pleroma.UserTest do
 
       user = User.get_by_ap_id(note.data["actor"])
 
-      assert user.info["note_count"] == nil
+      assert user.info.note_count == 0
 
       {:ok, user} = User.update_note_count(user)
 
-      assert user.info["note_count"] == 1
+      assert user.info.note_count == 1
     end
 
     test "it increases the info->note_count property" do