aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorkaniini <nenolod@gmail.com>2018-12-06 16:01:58 +0000
committerkaniini <nenolod@gmail.com>2018-12-06 16:01:58 +0000
commit1d531fd2f32a7f8fff562a3122b30b8ccdccead0 (patch)
tree230906410c1b24fcd35d6646af2ab87e46ced91b /lib
parentabead01ab6f5586e60d467d7efd0de560a97c5bd (diff)
parent2ae1128d9f7a89aff6ba7fb3d486a00f76dbc28b (diff)
downloadpleroma-1d531fd2f32a7f8fff562a3122b30b8ccdccead0.tar.gz
Merge branch 'fix/mastodon-api-settings' into 'develop'
Fix put_settings and remove info_changeset See merge request pleroma/pleroma!507
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/user.ex4
-rw-r--r--lib/pleroma/user/info.ex5
-rw-r--r--lib/pleroma/web/mastodon_api/mastodon_api_controller.ex8
3 files changed, 10 insertions, 7 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index 74ae5ef0d..9da674982 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -62,10 +62,6 @@ defmodule Pleroma.User do
|> validate_required([:following])
end
- def info_changeset(struct, params \\ %{}) do
- raise "NOT VALID ANYMORE"
- end
-
def user_info(%User{} = user) do
oneself = if user.local, do: 1, else: 0
diff --git a/lib/pleroma/user/info.ex b/lib/pleroma/user/info.ex
index 7a99787f8..d81b45b8d 100644
--- a/lib/pleroma/user/info.ex
+++ b/lib/pleroma/user/info.ex
@@ -149,6 +149,11 @@ defmodule Pleroma.User.Info do
])
end
+ def mastodon_settings_update(info, params) do
+ info
+ |> cast(params, [:settings])
+ end
+
def set_source_data(info, source_data) do
params = %{source_data: source_data}
diff --git a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
index 57de92dc0..2d7b1a00c 100644
--- a/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
+++ b/lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
@@ -979,9 +979,11 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController do
end
def put_settings(%{assigns: %{user: user}} = conn, %{"data" => settings} = _params) do
- with new_info <- Map.put(user.info, "settings", settings),
- change <- User.info_changeset(user, %{info: new_info}),
- {:ok, _user} <- User.update_and_set_cache(change) do
+ info_cng = User.Info.mastodon_settings_update(user.info, settings)
+
+ with changeset <- User.update_changeset(user),
+ changeset <- Ecto.Changeset.put_embed(changeset, :info, info_cng),
+ {:ok, user} <- User.update_and_set_cache(changeset) do
conn
|> json(%{})
else