Participation: Get for a user.

This commit is contained in:
lain 2019-04-10 17:05:33 +02:00
commit 20d9b90760
3 changed files with 41 additions and 2 deletions

View file

@ -51,10 +51,10 @@ defmodule Pleroma.Conversation do
ap_id when is_binary(ap_id) <- activity.data["object"]["context"] do
{:ok, conversation} = create_for_ap_id(ap_id)
local_users = User.get_users_from_set(activity.recipients, true)
users = User.get_users_from_set(activity.recipients)
participations =
Enum.map(local_users, fn user ->
Enum.map(users, fn user ->
{:ok, participation} =
Participation.create_for_user_and_conversation(user, conversation)

View file

@ -8,6 +8,7 @@ defmodule Pleroma.Conversation.Participation do
alias Pleroma.Conversation
alias Pleroma.Repo
import Ecto.Changeset
import Ecto.Query
schema "conversation_participations" do
belongs_to(:user, User, type: Pleroma.FlakeId)
@ -50,4 +51,12 @@ defmodule Pleroma.Conversation.Participation do
|> read_cng(%{read: false})
|> Repo.update()
end
def for_user(user, params \\ %{}) do
from(p in __MODULE__,
where: p.user_id == ^user.id,
order_by: [desc: p.updated_at]
)
|> Pleroma.Pagination.fetch_paginated(params)
end
end