logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git

notification_setting.ex (821B)


  1. # Pleroma: A lightweight social networking server
  2. # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
  3. # SPDX-License-Identifier: AGPL-3.0-only
  4. defmodule Pleroma.User.NotificationSetting do
  5. use Ecto.Schema
  6. import Ecto.Changeset
  7. @derive Jason.Encoder
  8. @primary_key false
  9. embedded_schema do
  10. field(:block_from_strangers, :boolean, default: false)
  11. field(:hide_notification_contents, :boolean, default: false)
  12. end
  13. def changeset(schema, params) do
  14. schema
  15. |> cast(prepare_attrs(params), [
  16. :block_from_strangers,
  17. :hide_notification_contents
  18. ])
  19. end
  20. defp prepare_attrs(params) do
  21. Enum.reduce(params, %{}, fn
  22. {k, v}, acc when is_binary(v) ->
  23. Map.put(acc, k, String.downcase(v))
  24. {k, v}, acc ->
  25. Map.put(acc, k, v)
  26. end)
  27. end
  28. end