瀏覽代碼

Participations: Add marking as read and unread.

tags/v1.1.4
lain 5 年之前
父節點
當前提交
64c1c3a407
共有 3 個文件被更改,包括 43 次插入0 次删除
  1. +18
    -0
      lib/conversation/participation.ex
  2. +14
    -0
      test/conversation/participation_test.exs
  3. +11
    -0
      test/support/factory.ex

+ 18
- 0
lib/conversation/participation.ex 查看文件

@@ -28,4 +28,22 @@ defmodule Pleroma.Conversation.Participation do
|> creation_cng(%{user_id: user.id, conversation_id: conversation.id})
|> Repo.insert()
end

def read_cng(struct, params) do
struct
|> cast(params, [:read])
|> validate_required([:read])
end

def mark_as_read(participation) do
participation
|> read_cng(%{read: true})
|> Repo.update()
end

def mark_as_unread(participation) do
participation
|> read_cng(%{read: false})
|> Repo.update()
end
end

+ 14
- 0
test/conversation/participation_test.exs 查看文件

@@ -19,4 +19,18 @@ defmodule Pleroma.Conversation.ParticipationTest do
assert participation.user_id == user.id
assert participation.conversation_id == conversation.id
end

test "it marks a participation as read" do
participation = insert(:participation, %{read: false})
{:ok, participation} = Participation.mark_as_read(participation)

assert participation.read
end

test "it marks a participation as unread" do
participation = insert(:participation, %{read: true})
{:ok, participation} = Participation.mark_as_unread(participation)

refute participation.read
end
end

+ 11
- 0
test/support/factory.ex 查看文件

@@ -5,6 +5,17 @@
defmodule Pleroma.Factory do
use ExMachina.Ecto, repo: Pleroma.Repo

def participation_factory do
conversation = insert(:conversation)
user = insert(:user)

%Pleroma.Conversation.Participation{
conversation: conversation,
user: user,
read: false
}
end

def conversation_factory do
%Pleroma.Conversation{
ap_id: sequence(:ap_id, &"https://some_conversation/#{&1}")


Loading…
取消
儲存