aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers/exports_controller.rb
diff options
context:
space:
mode:
authorZog2018-03-07 11:35:25 +0100
committerZog2018-03-12 12:00:14 +0100
commit1245099459bd3d7dce71fdf0d7c95b2377a0034e (patch)
treec17f2c4bd68fc6ad4eedead96e1106954d7093e4 /app/controllers/exports_controller.rb
parent0b9269780989dbd69a9be9d63670aab12050cf60 (diff)
downloadchouette-core-1245099459bd3d7dce71fdf0d7c95b2377a0034e.tar.bz2
Refs #6133; First Crud for exports
Diffstat (limited to 'app/controllers/exports_controller.rb')
-rw-r--r--app/controllers/exports_controller.rb111
1 files changed, 39 insertions, 72 deletions
diff --git a/app/controllers/exports_controller.rb b/app/controllers/exports_controller.rb
index 095720aa0..1b947299f 100644
--- a/app/controllers/exports_controller.rb
+++ b/app/controllers/exports_controller.rb
@@ -1,74 +1,41 @@
-require 'will_paginate/array'
-require 'open-uri'
-
class ExportsController < ChouetteController
- include ReferentialSupport
- # defaults :resource_class => Export
- #
- # respond_to :html, :only => [:show, :index, :destroy, :exported_file]
- # respond_to :js, :only => [:index]
- # belongs_to :referential
- #
- # def index
- # begin
- # index!
- # rescue Ievkit::Error, Faraday::Error => error
- # logger.error("Iev failure : #{error.message}")
- # flash[:error] = t(error.locale_for_error)
- # redirect_to referential_path(@referential)
- # end
- # end
- #
- # def show
- # begin
- # show!
- # rescue Ievkit::Error, Faraday::Error => error
- # logger.error("Iev failure : #{error.message}")
- # flash[:error] = t(error.locale_for_error)
- # redirect_to referential_path(@referential)
- # end
- # end
- #
- # def destroy
- # begin
- # destroy!
- # rescue Ievkit::Error, Faraday::Error => error
- # logger.error("Iev failure : #{error.message}")
- # flash[:error] = t(error.locale_for_error)
- # redirect_to referential_path(@referential)
- # end
- # end
- #
- # def exported_file
- # # WARNING : files under 10kb in size get treated as StringIO by OpenUri
- # # http://stackoverflow.com/questions/10496874/why-does-openuri-treat-files-under-10kb-in-size-as-stringio
- # OpenURI::Buffer.send :remove_const, 'StringMax' if OpenURI::Buffer.const_defined?('StringMax')
- # OpenURI::Buffer.const_set 'StringMax', 0
- # begin
- # send_file open(resource.file_path), { :type => "application/#{resource.filename_extension}", :disposition => "attachment", :filename => resource.filename }
- # rescue Ievkit::Error, Faraday::Error => error
- # logger.error("Iev failure : #{error.message}")
- # flash[:error] = t(error.locale_for_error)
- # redirect_to referential_path(@referential)
- # end
- # end
- #
- # protected
- #
- # def export_service
- # ExportService.new(@referential)
- # end
- #
- # def resource
- # @export ||= export_service.find( params[:id] )
- # @line_items = @export.report.line_items
- # if @line_items.size > 500
- # @line_items = @line_items.paginate(page: params[:page], per_page: 20)
- # end
- # @export
- # end
- #
- # def collection
- # @exports ||= export_service.all.sort_by{ |export| export.created_at }.reverse.paginate(:page => params[:page])
- # end
+ include PolicyChecker
+ include RansackDateFilter
+ include IevInterfaces
+ skip_before_action :authenticate_user!, only: [:upload]
+ defaults resource_class: Export::Base, collection_name: 'exports', instance_name: 'export'
+
+ def upload
+ if params[:token] == resource.token_download
+ send_file resource.file.path
+ else
+ user_not_authorized
+ end
+ end
+
+ private
+
+ def build_resource
+ @export ||= Export::Workbench.new(*resource_params) do |export|
+ export.workbench = parent
+ export.creator = current_user.name
+ end
+ end
+
+ def export_params
+ params.require(:export).permit(
+ :name,
+ :type,
+ :referential_id
+ )
+ end
+
+ def decorate_collection(exports)
+ ExportDecorator.decorate(
+ exports,
+ context: {
+ workbench: @workbench
+ }
+ )
+ end
end