aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/export/base.rb
diff options
context:
space:
mode:
authorZog2018-04-03 14:45:43 +0200
committerZog2018-04-03 14:48:15 +0200
commit3af91a4f5c6d761e444170908836166f115569b2 (patch)
tree3843909d0b6ab722c2df3ee0c979049b86f2ffa3 /app/models/export/base.rb
parent361ad6302d717acff9431d51126d8bf3a6143503 (diff)
downloadchouette-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.rb20
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'