aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/user
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2019-08-08 14:38:33 +0000
committerlain <lain@soykaf.club>2019-08-08 14:38:33 +0000
commit29807ef6a5b43a528ffca08b4f721b251f331c8d (patch)
tree76930c3a3dc12b95bcb57a9b4832f861dd68d960 /lib/pleroma/user
parentb18234e04c76daa564e0d8157dcd09566485da24 (diff)
parent9d4f34fbcb1a8e2eca424b3a3374c9f9af972574 (diff)
downloadpleroma-29807ef6a5b43a528ffca08b4f721b251f331c8d.tar.gz
Merge branch 'feature/digest-email' into 'develop'
Feature/digest email See merge request pleroma/pleroma!1078
Diffstat (limited to 'lib/pleroma/user')
-rw-r--r--lib/pleroma/user/info.ex25
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/pleroma/user/info.ex b/lib/pleroma/user/info.ex
index b03e705c3..22eb9a182 100644
--- a/lib/pleroma/user/info.ex
+++ b/lib/pleroma/user/info.ex
@@ -45,6 +45,7 @@ defmodule Pleroma.User.Info do
field(:hide_follows, :boolean, default: false)
field(:hide_favorites, :boolean, default: true)
field(:pinned_activities, {:array, :string}, default: [])
+ field(:email_notifications, :map, default: %{"digest" => false})
field(:mascot, :map, default: nil)
field(:emoji, {:array, :map}, default: [])
field(:pleroma_settings_store, :map, default: %{})
@@ -95,6 +96,30 @@ defmodule Pleroma.User.Info do
|> validate_required([:notification_settings])
end
+ @doc """
+ Update email notifications in the given User.Info struct.
+
+ Examples:
+
+ iex> update_email_notifications(%Pleroma.User.Info{email_notifications: %{"digest" => false}}, %{"digest" => true})
+ %Pleroma.User.Info{email_notifications: %{"digest" => true}}
+
+ """
+ @spec update_email_notifications(t(), map()) :: Ecto.Changeset.t()
+ def update_email_notifications(info, settings) do
+ email_notifications =
+ info.email_notifications
+ |> Map.merge(settings)
+ |> Map.take(["digest"])
+
+ params = %{email_notifications: email_notifications}
+ fields = [:email_notifications]
+
+ info
+ |> cast(params, fields)
+ |> validate_required(fields)
+ end
+
def add_to_note_count(info, number) do
set_note_count(info, info.note_count + number)
end