diff options
| author | Robert | 2017-07-23 22:56:12 +0200 |
|---|---|---|
| committer | Robert | 2017-07-25 21:31:51 +0200 |
| commit | fe46c7832fa1e0c6af450f0937aea3534c0f6b01 (patch) | |
| tree | 60670a6ac730a081c3627f25a44c0bd78ea90d3a /app/workers | |
| parent | 384a06676b8e0985f39fbc894a2d7dd458823529 (diff) | |
| download | chouette-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.rb | 21 |
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 |
