Add `with_muted` param to ChatController.index/2

This commit is contained in:
Egor Kislitsyn 2020-11-04 16:40:12 +04:00
parent be52819a11
commit ca95cbe0b4
No known key found for this signature in database
GPG Key ID: 1B49CB15B71E7805
5 changed files with 20 additions and 6 deletions

View File

@ -116,6 +116,10 @@ The modified chat message
This will return a list of chats that you have been involved in, sorted by their
last update (so new chats will be at the top).
Parameters:
- with_muted: Include chats from muted users (boolean).
Returned data:
```json

View File

@ -6,6 +6,7 @@ defmodule Pleroma.Web.ApiSpec.ChatOperation do
alias OpenApiSpex.Operation
alias OpenApiSpex.Schema
alias Pleroma.Web.ApiSpec.Schemas.ApiError
alias Pleroma.Web.ApiSpec.Schemas.BooleanLike
alias Pleroma.Web.ApiSpec.Schemas.Chat
alias Pleroma.Web.ApiSpec.Schemas.ChatMessage
@ -132,7 +133,10 @@ def index_operation do
tags: ["chat"],
summary: "Get a list of chats that you participated in",
operationId: "ChatController.index",
parameters: pagination_params(),
parameters: [
Operation.parameter(:with_muted, :query, BooleanLike, "Include chats from muted users")
| pagination_params()
],
responses: %{
200 => Operation.response("The chats of the user", "application/json", chats_response())
},

View File

@ -138,11 +138,10 @@ def messages(%{assigns: %{user: user}} = conn, %{id: id} = params) do
end
end
def index(%{assigns: %{user: %{id: user_id} = user}} = conn, _params) do
def index(%{assigns: %{user: %{id: user_id} = user}} = conn, params) do
exclude_users =
user
|> User.blocked_users_ap_ids()
|> Enum.concat(User.muted_users_ap_ids(user))
User.blocked_users_ap_ids(user) ++
if params[:with_muted], do: [], else: User.muted_users_ap_ids(user)
chats =
user_id

View File

@ -363,6 +363,13 @@ test "it does not return chats with users you muted", %{conn: conn, user: user}
|> json_response_and_validate_schema(200)
assert length(result) == 0
result =
conn
|> get("/api/v1/pleroma/chats?with_muted=true")
|> json_response_and_validate_schema(200)
assert length(result) == 1
end
test "it returns all chats", %{conn: conn, user: user} do