about summary refs log tree commit diff
path: root/app/controllers
diff options
context:
space:
mode:
authorMatt Jankowski <mjankowski@thoughtbot.com>2017-04-12 12:20:44 -0400
committerEugen <eugen@zeonfederated.com>2017-04-12 18:20:44 +0200
commit7f0a865b05628fa82ac692ec9a21c418e30dac14 (patch)
tree9c6e38bf2a644bcf9aab6f1fdc7f275cb380891a /app/controllers
parent08fce0821706a3c84b70fd513eb75c0ad7014c04 (diff)
Allow import/export of mutes list (#1541)
* Allow export of mutes list

* Allow importing of mutes list

* Refactor to use Settings::Exports::BaseController and DRY up exports code
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/settings/exports/base_controller.rb23
-rw-r--r--app/controllers/settings/exports/blocked_accounts_controller.rb12
-rw-r--r--app/controllers/settings/exports/following_accounts_controller.rb12
-rw-r--r--app/controllers/settings/exports/muted_accounts_controller.rb13
-rw-r--r--app/controllers/settings/exports_controller.rb1
5 files changed, 45 insertions, 16 deletions
diff --git a/app/controllers/settings/exports/base_controller.rb b/app/controllers/settings/exports/base_controller.rb
new file mode 100644
index 000000000..0b790959f
--- /dev/null
+++ b/app/controllers/settings/exports/base_controller.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+module Settings
+  module Exports
+    class BaseController < ApplicationController
+      before_action :authenticate_user!
+
+      def index
+        export_data = Export.new(export_accounts).to_csv
+
+        respond_to do |format|
+          format.csv { send_data export_data, filename: export_filename }
+        end
+      end
+
+      private
+
+      def export_filename
+        "#{controller_name}.csv"
+      end
+    end
+  end
+end
diff --git a/app/controllers/settings/exports/blocked_accounts_controller.rb b/app/controllers/settings/exports/blocked_accounts_controller.rb
index 0bf8848b4..9c4bcaa53 100644
--- a/app/controllers/settings/exports/blocked_accounts_controller.rb
+++ b/app/controllers/settings/exports/blocked_accounts_controller.rb
@@ -2,15 +2,11 @@
 
 module Settings
   module Exports
-    class BlockedAccountsController < ApplicationController
-      before_action :authenticate_user!
+    class BlockedAccountsController < BaseController
+      private
 
-      def index
-        export_data = Export.new(current_account.blocking).to_csv
-
-        respond_to do |format|
-          format.csv { send_data export_data, filename: 'blocking.csv' }
-        end
+      def export_accounts
+        current_account.blocking
       end
     end
   end
diff --git a/app/controllers/settings/exports/following_accounts_controller.rb b/app/controllers/settings/exports/following_accounts_controller.rb
index a7f4344ca..8d06bcc95 100644
--- a/app/controllers/settings/exports/following_accounts_controller.rb
+++ b/app/controllers/settings/exports/following_accounts_controller.rb
@@ -2,15 +2,11 @@
 
 module Settings
   module Exports
-    class FollowingAccountsController < ApplicationController
-      before_action :authenticate_user!
+    class FollowingAccountsController < BaseController
+      private
 
-      def index
-        export_data = Export.new(current_account.following).to_csv
-
-        respond_to do |format|
-          format.csv { send_data export_data, filename: 'following.csv' }
-        end
+      def export_accounts
+        current_account.following
       end
     end
   end
diff --git a/app/controllers/settings/exports/muted_accounts_controller.rb b/app/controllers/settings/exports/muted_accounts_controller.rb
new file mode 100644
index 000000000..a77a9af6d
--- /dev/null
+++ b/app/controllers/settings/exports/muted_accounts_controller.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+module Settings
+  module Exports
+    class MutedAccountsController < BaseController
+      private
+
+      def export_accounts
+        current_account.muting
+      end
+    end
+  end
+end
diff --git a/app/controllers/settings/exports_controller.rb b/app/controllers/settings/exports_controller.rb
index e060f03d3..77dea3231 100644
--- a/app/controllers/settings/exports_controller.rb
+++ b/app/controllers/settings/exports_controller.rb
@@ -9,5 +9,6 @@ class Settings::ExportsController < ApplicationController
     @total_storage = current_account.media_attachments.sum(:file_file_size)
     @total_follows = current_account.following.count
     @total_blocks  = current_account.blocking.count
+    @total_mutes = current_account.muting.count
   end
 end