aboutsummaryrefslogtreecommitdiffstats
path: root/app/workers
diff options
context:
space:
mode:
authorRobert2017-07-23 22:56:12 +0200
committerRobert2017-07-25 21:31:51 +0200
commitfe46c7832fa1e0c6af450f0937aea3534c0f6b01 (patch)
tree60670a6ac730a081c3627f25a44c0bd78ea90d3a /app/workers
parent384a06676b8e0985f39fbc894a2d7dd458823529 (diff)
downloadchouette-core-fe46c7832fa1e0c6af450f0937aea3534c0f6b01.tar.bz2
Refs: #3507;20h Specing and Implementing the ZipService
Diffstat (limited to 'app/workers')
-rw-r--r--app/workers/workbench_import_worker.rb21
1 files changed, 16 insertions, 5 deletions
diff --git a/app/workers/workbench_import_worker.rb b/app/workers/workbench_import_worker.rb
index 18d3ae112..d1a381e0c 100644
--- a/app/workers/workbench_import_worker.rb
+++ b/app/workers/workbench_import_worker.rb
@@ -1,6 +1,7 @@
class WorkbenchImportWorker
include Sidekiq::Worker
include Rails.application.routes.url_helpers
+ include Configurable
attr_reader :import, :downloaded
@@ -17,18 +18,22 @@ class WorkbenchImportWorker
path: import_path,
params: {token: import.token_download})
- Tempfile.open( do | tmpfile |
- tmpfile.write zipfile_data
- @downloaded = tmpfile.path
+ path = File.join(config.dir, import.name.gsub(%r{\s+}, '-'))
+ unique_path = FileService.unique_filename path
+ Dir.mkdir unique_path
+ @downloaded = File.join(unique_path, import.name)
+ File.open(downloaded, 'wb') do | file |
+ file.write zipfile_data
end
- if one_entry?
- upload(@downloaded)
+ if single_entry?
+ upload(downloaded)
else
split_zip.each(&method(:upload))
end
end
+
def single_entry?
true
end
@@ -40,6 +45,12 @@ class WorkbenchImportWorker
def upload zip_file
end
+ # Memoized Values
+
+ def dirname
+ @__dirname__ ||= make_unique_dir
+ end
+
def import_host
@__import_host__ ||= Rails.application.config.front_end_host
end