123456789101112131415161718192021222324252627282930313233343536373839 |
- # frozen_string_literal: true
- class Settings::ExportsController < Settings::BaseController
- include Authorization
- include Redisable
- include Lockable
- skip_before_action :check_self_destruct!
- skip_before_action :require_functional!
- def show
- @export_summary = ExportSummary.new(preloaded_account)
- @backups = current_user.backups
- end
- def create
- backup = nil
- with_redis_lock("backup:#{current_user.id}") do
- authorize :backup, :create?
- backup = current_user.backups.create!
- end
- BackupWorker.perform_async(backup.id)
- redirect_to settings_export_path
- end
- private
- def preloaded_account
- current_account.tap do |account|
- ActiveRecord::Associations::Preloader.new(
- records: [account],
- associations: :account_stat
- ).call
- end
- end
- end
|