Class: NtqExcelsiorEngine::ImportsController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- NtqExcelsiorEngine::ImportsController
- Defined in:
- app/controllers/ntq_excelsior_engine/imports_controller.rb
Constant Summary collapse
- ALLOWED_IMPORT_ACTIONS =
%w(import)
Instance Method Summary collapse
- #create {|@import_file| ... } ⇒ Object
- #export_errors ⇒ Object
- #index ⇒ Object
- #show ⇒ Object
- #update ⇒ Object
Instance Method Details
#create {|@import_file| ... } ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'app/controllers/ntq_excelsior_engine/imports_controller.rb', line 33 def create @import_file = ::NtqExcelsiorEngine::Import.new import_type: params[:type] @import_file.created_by = NtqExcelsiorEngine.request.whoimportit @import_file.file = file_params yield(@import_file) if block_given? @import_file.inspect if @import_file.save unless NtqExcelsiorEngine.async NtqExcelsiorEngine::Imports::ProcessImport.call(id: @import_file.id, actions: NtqExcelsiorEngine.actions_on_create.map(&:to_s)) end end render :status, layout: false end |
#export_errors ⇒ Object
18 19 20 21 22 23 24 25 |
# File 'app/controllers/ntq_excelsior_engine/imports_controller.rb', line 18 def export_errors @import_file = NtqExcelsiorEngine::Import.find(params[:id]) render nothing: true, status: 404 unless @import_file.error? ctx = NtqExcelsiorEngine::Exporters::ExportImportErrors.call(import: @import_file) blob = @import_file.file.blob filename = blob.filename send_data ctx.stream, type: blob.content_type, filename: "#{filename.base}_errors#{filename.extension_with_delimiter}" end |
#index ⇒ Object
10 11 12 13 14 15 16 |
# File 'app/controllers/ntq_excelsior_engine/imports_controller.rb', line 10 def index import_files = NtqExcelsiorEngine::Import.all import_files = import_files.where(import_type: params[:import_type]) if params[:import_type] import_files = import_files.order(created_at: :desc) render json: { import_files: import_files.map { |import_file| import_file.to_builder.attributes! } } end |
#show ⇒ Object
27 28 29 30 |
# File 'app/controllers/ntq_excelsior_engine/imports_controller.rb', line 27 def show @import_file = ::NtqExcelsiorEngine::Import.find params[:id] render :status, layout: false end |
#update ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'app/controllers/ntq_excelsior_engine/imports_controller.rb', line 47 def update @import_file = ::NtqExcelsiorEngine::Import.find params[:id] if params[:action].present? && ALLOWED_IMPORT_ACTIONS.include?(params[:to_state]) if NtqExcelsiorEngine.async @import_file.process_import!(actions: [params[:to_state]]) else NtqExcelsiorEngine::Imports::ProcessImport.call(id: @import_file.id, actions: [params[:to_state]]) end @import_file.update(state: 'importing') if params[:to_state] == "import" end render :status, layout: false end |