deprecation warning
authorAlexander Strizhakov <alex.strizhakov@gmail.com>
Tue, 25 Aug 2020 06:10:45 +0000 (09:10 +0300)
committerrinpatch <rinpatch@sdf.org>
Thu, 10 Sep 2020 18:50:41 +0000 (21:50 +0300)
changed namespace for activity expiration configuration

config/description.exs
lib/pleroma/config/deprecation_warnings.ex
lib/pleroma/workers/purge_expired_activity.ex
priv/repo/migrations/20200824115541_rename_activity_expiration_setting.exs [new file with mode: 0644]

index 6ce27278cb06c366c61689632e7cc5f5cfa823b7..1253944de67b7253380ee90e7522d6e7f4ebc07a 100644 (file)
@@ -2472,14 +2472,14 @@ config :pleroma, :config_description, [
   },
   %{
     group: :pleroma,
-    key: Pleroma.ActivityExpiration,
+    key: Pleroma.Workers.PurgeExpiredActivity,
     type: :group,
-    description: "Expired activity settings",
+    description: "Expired activities settings",
     children: [
       %{
         key: :enabled,
         type: :boolean,
-        description: "Whether expired activities will be sent to the job queue to be deleted"
+        description: "Enables expired activities addition & deletion"
       }
     ]
   },
index 2bfe4ddbacdc1c69a87e30ff6f520c4c0769d290..412d55a7783a4b6fd2b329ed0b7e02e69123f0b5 100644 (file)
@@ -8,7 +8,7 @@ defmodule Pleroma.Config.DeprecationWarnings do
   require Logger
   alias Pleroma.Config
 
-  @type config_namespace() :: [atom()]
+  @type config_namespace() :: atom() | [atom()]
   @type config_map() :: {config_namespace(), config_namespace(), String.t()}
 
   @mrf_config_map [
@@ -57,6 +57,7 @@ defmodule Pleroma.Config.DeprecationWarnings do
     check_media_proxy_whitelist_config()
     check_welcome_message_config()
     check_gun_pool_options()
+    check_activity_expiration_config()
   end
 
   def check_welcome_message_config do
@@ -158,4 +159,20 @@ defmodule Pleroma.Config.DeprecationWarnings do
       Config.put(:pools, updated_config)
     end
   end
+
+  @spec check_activity_expiration_config() :: :ok | nil
+  def check_activity_expiration_config do
+    warning_preface = """
+    !!!DEPRECATION WARNING!!!
+      Your config is using old namespace for activity expiration configuration. Setting should work for now, but you are advised to change to new namespace to prevent possible issues later:
+    """
+
+    move_namespace_and_warn(
+      [
+        {Pleroma.ActivityExpiration, Pleroma.Workers.PurgeExpiredActivity,
+         "\n* `config :pleroma, Pleroma.ActivityExpiration` is now `config :pleroma, Pleroma.Workers.PurgeExpiredActivity`"}
+      ],
+      warning_preface
+    )
+  end
 end
index ba005300883d15d1edfa1d984eefd250c5ef86a3..44a8ad0b99e6224e1e330351637d360fe12b08f4 100644 (file)
@@ -7,6 +7,8 @@ defmodule Pleroma.Workers.PurgeExpiredActivity do
 
   import Ecto.Query
 
+  alias Pleroma.Activity
+
   def enqueue(args) do
     with true <- enabled?(),
          args when is_map(args) <- validate_expires_at(args) do
@@ -20,7 +22,7 @@ defmodule Pleroma.Workers.PurgeExpiredActivity do
 
   @impl true
   def perform(%Oban.Job{args: %{"activity_id" => id}}) do
-    with %Pleroma.Activity{} = activity <- find_activity(id),
+    with %Activity{} = activity <- find_activity(id),
          %Pleroma.User{} = user <- find_user(activity.object.data["actor"]),
          false <- pinned_by_actor?(activity, user) do
       Pleroma.Web.CommonAPI.delete(activity.id, user)
@@ -53,7 +55,7 @@ defmodule Pleroma.Workers.PurgeExpiredActivity do
   end
 
   defp find_activity(id) do
-    with nil <- Pleroma.Activity.get_by_id_with_object(id) do
+    with nil <- Activity.get_by_id_with_object(id) do
       {:error, :activity_not_found}
     end
   end
@@ -65,7 +67,7 @@ defmodule Pleroma.Workers.PurgeExpiredActivity do
   end
 
   defp pinned_by_actor?(activity, user) do
-    with true <- Pleroma.Activity.pinned_by_actor?(activity, user) do
+    with true <- Activity.pinned_by_actor?(activity, user) do
       :pinned_by_actor
     end
   end
diff --git a/priv/repo/migrations/20200824115541_rename_activity_expiration_setting.exs b/priv/repo/migrations/20200824115541_rename_activity_expiration_setting.exs
new file mode 100644 (file)
index 0000000..241882e
--- /dev/null
@@ -0,0 +1,13 @@
+defmodule Pleroma.Repo.Migrations.RenameActivityExpirationSetting do
+  use Ecto.Migration
+
+  def change do
+    config = Pleroma.ConfigDB.get_by_params(%{group: :pleroma, key: Pleroma.ActivityExpiration})
+
+    if config do
+      config
+      |> Ecto.Changeset.change(key: Pleroma.Workers.PurgeExpiredActivity)
+      |> Pleroma.Repo.update()
+    end
+  end
+end