projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
refactor emoji api with fixes
[akkoma]
/
lib
/
pleroma
/
conversation
/
participation.ex
diff --git
a/lib/pleroma/conversation/participation.ex
b/lib/pleroma/conversation/participation.ex
index aafe572803f0b99f848c146f50a931c39b4eb447..215265fc90a201c8c24539e9c0cc632bbea62699 100644
(file)
--- a/
lib/pleroma/conversation/participation.ex
+++ b/
lib/pleroma/conversation/participation.ex
@@
-1,5
+1,5
@@
# Pleroma: A lightweight social networking server
# Pleroma: A lightweight social networking server
-# Copyright © 2017-20
19
Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-20
20
Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Conversation.Participation do
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Conversation.Participation do
@@
-64,11
+64,13
@@
defmodule Pleroma.Conversation.Participation do
end
def mark_as_read(participation) do
end
def mark_as_read(participation) do
- participation
- |> read_cng(%{read: true})
- |> Repo.update()
+ __MODULE__
+ |> where(id: ^participation.id)
+ |> update(set: [read: true])
+ |> select([p], p)
+ |> Repo.update_all([])
|> case do
|> case do
- {
:ok, participation
} ->
+ {
1, [participation]
} ->
participation = Repo.preload(participation, :user)
User.set_unread_conversation_count(participation.user)
{:ok, participation}
participation = Repo.preload(participation, :user)
User.set_unread_conversation_count(participation.user)
{:ok, participation}
@@
-127,23
+129,18
@@
defmodule Pleroma.Conversation.Participation do
end
def restrict_recipients(query, user, %{"recipients" => user_ids}) do
end
def restrict_recipients(query, user, %{"recipients" => user_ids}) do
- user_ids =
+ user_
binary_
ids =
[user.id | user_ids]
|> Enum.uniq()
[user.id | user_ids]
|> Enum.uniq()
- |> Enum.reduce([], fn user_id, acc ->
- case FlakeId.Ecto.CompatType.dump(user_id) do
- {:ok, user_id} -> [user_id | acc]
- _ -> acc
- end
- end)
+ |> User.binary_id()
conversation_subquery =
__MODULE__
|> group_by([p], p.conversation_id)
|> having(
[p],
conversation_subquery =
__MODULE__
|> group_by([p], p.conversation_id)
|> having(
[p],
- count(p.user_id) == ^length(user_ids) and
- fragment("array_agg(?) @> ?", p.user_id, ^user_ids)
+ count(p.user_id) == ^length(user_
binary_
ids) and
+ fragment("array_agg(?) @> ?", p.user_id, ^user_
binary_
ids)
)
|> select([p], %{id: p.conversation_id})
)
|> select([p], %{id: p.conversation_id})