* Allow import/export of instance-level domain blocks/allows. Fixes #15095 * Pacify circleci * Address simple code review feedback * Add headers to exported CSV * Extract common import/export functionality to AdminExportControllerConcern * Add additional fields to instance-blocked domain export * Address review feedback * Split instance domain block/allow import/export into separate pages/controllers * Address code review feedback * Pacify DeepSource * Work around Paperclip::HasAttachmentFile for Rails 6 * Fix deprecated API warning in export tests * Remove after_commit workaround
		
			
				
	
	
		
			30 lines
		
	
	
		
			721 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			721 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
# A non-activerecord helper class for csv upload
 | 
						|
class Admin::Import
 | 
						|
  extend ActiveModel::Callbacks
 | 
						|
  include ActiveModel::Model
 | 
						|
  include Paperclip::Glue
 | 
						|
 | 
						|
  FILE_TYPES = %w(text/plain text/csv application/csv).freeze
 | 
						|
 | 
						|
  # Paperclip required callbacks
 | 
						|
  define_model_callbacks :save, only: [:after]
 | 
						|
  define_model_callbacks :destroy, only: [:before, :after]
 | 
						|
 | 
						|
  attr_accessor :data_file_name, :data_content_type
 | 
						|
 | 
						|
  has_attached_file :data
 | 
						|
  validates_attachment_content_type :data, content_type: FILE_TYPES
 | 
						|
  validates_attachment_presence :data
 | 
						|
  validates_with AdminImportValidator, on: :create
 | 
						|
 | 
						|
  def save
 | 
						|
    run_callbacks :save
 | 
						|
  end
 | 
						|
 | 
						|
  def destroy
 | 
						|
    run_callbacks :destroy
 | 
						|
  end
 | 
						|
end
 |