Skip to content
Snippets Groups Projects
Commit 0ebe7d6d authored by Matt Jankowski's avatar Matt Jankowski Committed by Eugen Rochko
Browse files

Remove exports/base controller in favor of shared concern (#3444)

parent 23081bb2
No related branches found
No related tags found
No related merge requests found
# frozen_string_literal: true
module ExportControllerConcern
extend ActiveSupport::Concern
included do
before_action :authenticate_user!
before_action :load_export
end
private
def load_export
@export = Export.new(current_account)
end
def send_export_file
respond_to do |format|
format.csv { send_data export_data, filename: export_filename }
end
end
def export_data
raise 'Override in controller'
end
def export_filename
"#{controller_name}.csv"
end
end
# frozen_string_literal: true
module Settings
module Exports
class BaseController < ApplicationController
before_action :authenticate_user!
def index
@export = Export.new(current_account)
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
......@@ -2,7 +2,13 @@
module Settings
module Exports
class BlockedAccountsController < BaseController
class BlockedAccountsController < ApplicationController
include ExportControllerConcern
def index
send_export_file
end
private
def export_data
......
......@@ -2,7 +2,13 @@
module Settings
module Exports
class FollowingAccountsController < BaseController
class FollowingAccountsController < ApplicationController
include ExportControllerConcern
def index
send_export_file
end
private
def export_data
......
......@@ -2,7 +2,13 @@
module Settings
module Exports
class MutedAccountsController < BaseController
class MutedAccountsController < ApplicationController
include ExportControllerConcern
def index
send_export_file
end
private
def export_data
......
......@@ -2,8 +2,12 @@
require 'rails_helper'
describe Settings::Exports::BaseController do
describe ApplicationController, type: :controller do
controller do
include ExportControllerConcern
def index
send_export_file
end
def export_data
@export.account.username
end
......@@ -17,7 +21,7 @@ describe Settings::Exports::BaseController do
expect(response).to have_http_status(:success)
expect(response.content_type).to eq 'text/csv'
expect(response.headers['Content-Disposition']).to eq 'attachment; filename="base.csv"'
expect(response.headers['Content-Disposition']).to eq 'attachment; filename="anonymous.csv"'
expect(response.body).to eq user.account.username
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment