Fork of Pleroma with site-specific changes and feature branches https://git.pleroma.social/pleroma/pleroma
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

78 rindas
2.5KB

  1. defmodule Pleroma.Repo.Migrations.RenameInstanceChat do
  2. use Ecto.Migration
  3. alias Pleroma.ConfigDB
  4. @instance_params %{group: :pleroma, key: :instance}
  5. @shout_params %{group: :pleroma, key: :shout}
  6. @chat_params %{group: :pleroma, key: :chat}
  7. def up do
  8. instance_updated? = maybe_update_instance_key(:up) != :noop
  9. chat_updated? = maybe_update_chat_key(:up) != :noop
  10. case Enum.any?([instance_updated?, chat_updated?]) do
  11. true -> :ok
  12. false -> :noop
  13. end
  14. end
  15. def down do
  16. instance_updated? = maybe_update_instance_key(:down) != :noop
  17. chat_updated? = maybe_update_chat_key(:down) != :noop
  18. case Enum.any?([instance_updated?, chat_updated?]) do
  19. true -> :ok
  20. false -> :noop
  21. end
  22. end
  23. # pleroma.instance.chat_limit -> pleroma.shout.limit
  24. defp maybe_update_instance_key(:up) do
  25. with %ConfigDB{value: values} <- ConfigDB.get_by_params(@instance_params),
  26. limit when is_integer(limit) <- values[:chat_limit] do
  27. @shout_params |> Map.put(:value, limit: limit) |> ConfigDB.update_or_create()
  28. @instance_params |> Map.put(:subkeys, [":chat_limit"]) |> ConfigDB.delete()
  29. else
  30. _ ->
  31. :noop
  32. end
  33. end
  34. # pleroma.shout.limit -> pleroma.instance.chat_limit
  35. defp maybe_update_instance_key(:down) do
  36. with %ConfigDB{value: values} <- ConfigDB.get_by_params(@shout_params),
  37. limit when is_integer(limit) <- values[:limit] do
  38. @instance_params |> Map.put(:value, chat_limit: limit) |> ConfigDB.update_or_create()
  39. @shout_params |> Map.put(:subkeys, [":limit"]) |> ConfigDB.delete()
  40. else
  41. _ ->
  42. :noop
  43. end
  44. end
  45. # pleroma.chat.enabled -> pleroma.shout.enabled
  46. defp maybe_update_chat_key(:up) do
  47. with %ConfigDB{value: values} <- ConfigDB.get_by_params(@chat_params),
  48. enabled? when is_boolean(enabled?) <- values[:enabled] do
  49. @shout_params |> Map.put(:value, enabled: enabled?) |> ConfigDB.update_or_create()
  50. @chat_params |> Map.put(:subkeys, [":enabled"]) |> ConfigDB.delete()
  51. else
  52. _ ->
  53. :noop
  54. end
  55. end
  56. # pleroma.shout.enabled -> pleroma.chat.enabled
  57. defp maybe_update_chat_key(:down) do
  58. with %ConfigDB{value: values} <- ConfigDB.get_by_params(@shout_params),
  59. enabled? when is_boolean(enabled?) <- values[:enabled] do
  60. @chat_params |> Map.put(:value, enabled: enabled?) |> ConfigDB.update_or_create()
  61. @shout_params |> Map.put(:subkeys, [":enabled"]) |> ConfigDB.delete()
  62. else
  63. _ ->
  64. :noop
  65. end
  66. end
  67. end