瀏覽代碼

update api to set skip_thread_containment

tags/v1.1.4
Maksim Pechnikov 5 年之前
父節點
當前提交
f13d6c7f78
共有 7 個文件被更改,包括 60 次插入5 次删除
  1. +1
    -0
      docs/api/differences_in_mastoapi_responses.md
  2. +9
    -1
      lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
  3. +2
    -1
      lib/pleroma/web/mastodon_api/views/account_view.ex
  4. +9
    -1
      lib/pleroma/web/twitter_api/twitter_api_controller.ex
  5. +2
    -1
      lib/pleroma/web/twitter_api/views/user_view.ex
  6. +13
    -0
      test/web/mastodon_api/mastodon_api_controller_test.exs
  7. +24
    -1
      test/web/twitter_api/twitter_api_controller_test.exs

+ 1
- 0
docs/api/differences_in_mastoapi_responses.md 查看文件

@@ -80,6 +80,7 @@ Additional parameters can be added to the JSON body/Form data:
- `hide_favorites` - if true, user's favorites timeline will be hidden
- `show_role` - if true, user's role (e.g admin, moderator) will be exposed to anyone in the API
- `default_scope` - the scope returned under `privacy` key in Source subentity
- `skip_thread_containment` - if true, skip filtering out broken threads

## Authentication



+ 9
- 1
lib/pleroma/web/mastodon_api/mastodon_api_controller.ex 查看文件

@@ -117,7 +117,15 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
|> Enum.dedup()

info_params =
[:no_rich_text, :locked, :hide_followers, :hide_follows, :hide_favorites, :show_role]
[
:no_rich_text,
:locked,
:hide_followers,
:hide_follows,
:hide_favorites,
:show_role,
:skip_thread_containment
]
|> Enum.reduce(%{}, fn key, acc ->
add_if_present(acc, params, to_string(key), key, fn value ->
{:ok, ControllerHelper.truthy_param?(value)}


+ 2
- 1
lib/pleroma/web/mastodon_api/views/account_view.ex 查看文件

@@ -124,7 +124,8 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do
hide_followers: user.info.hide_followers,
hide_follows: user.info.hide_follows,
hide_favorites: user.info.hide_favorites,
relationship: relationship
relationship: relationship,
skip_thread_containment: user.info.skip_thread_containment
}
}
|> maybe_put_role(user, opts[:for])


+ 9
- 1
lib/pleroma/web/twitter_api/twitter_api_controller.ex 查看文件

@@ -632,7 +632,15 @@ defmodule Pleroma.Web.TwitterAPI.Controller do

defp build_info_cng(user, params) do
info_params =
["no_rich_text", "locked", "hide_followers", "hide_follows", "hide_favorites", "show_role"]
[
"no_rich_text",
"locked",
"hide_followers",
"hide_follows",
"hide_favorites",
"show_role",
"skip_thread_containment"
]
|> Enum.reduce(%{}, fn key, res ->
if value = params[key] do
Map.put(res, key, value == "true")


+ 2
- 1
lib/pleroma/web/twitter_api/views/user_view.ex 查看文件

@@ -118,7 +118,8 @@ defmodule Pleroma.Web.TwitterAPI.UserView do
"pleroma" =>
%{
"confirmation_pending" => user_info.confirmation_pending,
"tags" => user.tags
"tags" => user.tags,
"skip_thread_containment" => user.info.skip_thread_containment
}
|> maybe_with_activation_status(user, for_user)
}


+ 13
- 0
test/web/mastodon_api/mastodon_api_controller_test.exs 查看文件

@@ -2378,6 +2378,19 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
assert user["pleroma"]["hide_followers"] == true
end

test "updates the user's skip_thread_containment option", %{conn: conn} do
user = insert(:user)

response =
conn
|> assign(:user, user)
|> patch("/api/v1/accounts/update_credentials", %{skip_thread_containment: "true"})
|> json_response(200)

assert response["pleroma"]["skip_thread_containment"] == true
assert refresh_record(user).info.skip_thread_containment
end

test "updates the user's hide_follows status", %{conn: conn} do
user = insert(:user)



+ 24
- 1
test/web/twitter_api/twitter_api_controller_test.exs 查看文件

@@ -1495,7 +1495,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
"hide_follows" => "false"
})

user = Repo.get!(User, user.id)
user = refresh_record(user)
assert user.info.hide_follows == false
assert json_response(conn, 200) == UserView.render("user.json", %{user: user, for: user})
end
@@ -1548,6 +1548,29 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
assert json_response(conn, 200) == UserView.render("user.json", %{user: user, for: user})
end

test "it sets and un-sets skip_thread_containment", %{conn: conn} do
user = insert(:user)

response =
conn
|> assign(:user, user)
|> post("/api/account/update_profile.json", %{"skip_thread_containment" => "true"})
|> json_response(200)

assert response["pleroma"]["skip_thread_containment"] == true
user = refresh_record(user)
assert user.info.skip_thread_containment

response =
conn
|> assign(:user, user)
|> post("/api/account/update_profile.json", %{"skip_thread_containment" => "false"})
|> json_response(200)

assert response["pleroma"]["skip_thread_containment"] == false
refute refresh_record(user).info.skip_thread_containment
end

test "it locks an account", %{conn: conn} do
user = insert(:user)



Loading…
取消
儲存