diff options
author | lain <lain@soykaf.club> | 2019-04-10 17:05:33 +0200 |
---|---|---|
committer | lain <lain@soykaf.club> | 2019-04-10 17:05:33 +0200 |
commit | 20d9b9076051d2dea60919ad85aaf88154629dc4 (patch) | |
tree | 8e50310e36a0d039e24db2389fc2597d7f096055 /lib | |
parent | 280172f6f6d74872349e3b4e6f1feaa9c95b3900 (diff) | |
download | pleroma-20d9b9076051d2dea60919ad85aaf88154629dc4.tar.gz |
Participation: Get for a user.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/conversation.ex | 4 | ||||
-rw-r--r-- | lib/conversation/participation.ex | 9 |
2 files changed, 11 insertions, 2 deletions
diff --git a/lib/conversation.ex b/lib/conversation.ex index 3d53e91b7..6eedc72b6 100644 --- a/lib/conversation.ex +++ b/lib/conversation.ex @@ -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) diff --git a/lib/conversation/participation.ex b/lib/conversation/participation.ex index a58d0ca0d..23e6409f1 100644 --- a/lib/conversation/participation.ex +++ b/lib/conversation/participation.ex @@ -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 |