end
def update_credentials(%{assigns: %{user: user}} = conn, params) do
+ original_user = user
params = if bio = params["note"] do
Map.put(params, "bio", bio)
else
with %Plug.Upload{} <- avatar,
{:ok, object} <- ActivityPub.upload(avatar),
change = Ecto.Changeset.change(user, %{avatar: object.data}),
- {:ok, user} = Repo.update(change) do
+ {:ok, user} = User.update_and_set_cache(change) do
user
else
_e -> user
{:ok, object} <- ActivityPub.upload(banner),
new_info <- Map.put(user.info, "banner", object.data),
change <- User.info_changeset(user, %{info: new_info}),
- {:ok, user} <- Repo.update(change) do
+ {:ok, user} <- User.update_and_set_cache(change) do
user
else
_e -> user
end
with changeset <- User.update_changeset(user, params),
- {:ok, user} <- Repo.update(changeset) do
+ {:ok, user} <- User.update_and_set_cache(changeset) do
+ if original_user != user do
+ CommonAPI.update(user)
+ end
json conn, AccountView.render("account.json", %{user: user})
else
_e ->