diff options
| author | Zog | 2018-04-03 14:45:43 +0200 | 
|---|---|---|
| committer | Zog | 2018-04-03 14:48:15 +0200 | 
| commit | 3af91a4f5c6d761e444170908836166f115569b2 (patch) | |
| tree | 3843909d0b6ab722c2df3ee0c979049b86f2ffa3 /app/models/export/base.rb | |
| parent | 361ad6302d717acff9431d51126d8bf3a6143503 (diff) | |
| download | chouette-core-3af91a4f5c6d761e444170908836166f115569b2.tar.bz2 | |
Refs #6218; Upload files to exporters6218-upload_files_to_exporters
Diffstat (limited to 'app/models/export/base.rb')
| -rw-r--r-- | app/models/export/base.rb | 20 | 
1 files changed, 20 insertions, 0 deletions
| diff --git a/app/models/export/base.rb b/app/models/export/base.rb index 6cf4c6b02..c65539635 100644 --- a/app/models/export/base.rb +++ b/app/models/export/base.rb @@ -1,4 +1,8 @@ +require 'net/http/post/multipart' +  class Export::Base < ActiveRecord::Base +  include Rails.application.routes.url_helpers +    self.table_name = "exports"    belongs_to :referential @@ -21,6 +25,22 @@ class Export::Base < ActiveRecord::Base      %w(zip csv json)    end +  def upload_file file +    url = URI.parse upload_workbench_export_url(self.workbench_id, self.id, host: Rails.application.config.rails_host) +    res = nil +    filename = File.basename(file.path) +    content_type = MIME::Types.type_for(filename).first&.content_type +    File.open(file.path) do |file_content| +      req = Net::HTTP::Post::Multipart.new url.path, +        file: UploadIO.new(file_content, content_type, filename), +        token: self.token_upload +      res = Net::HTTP.start(url.host, url.port) do |http| +        http.request(req) +      end +    end +    res +  end +    if Rails.env.development?      def self.force_load_descendants        path = Rails.root.join 'app/models/export' | 
