summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2016-01-08 17:38:53 +0100
committerDouwe Maan <douwe@gitlab.com>2016-01-08 17:38:53 +0100
commit0614793b38db4711053cbcb4fa80d9c8cc492eec (patch)
tree528e7b413ea84dd45bc2c02e9820c6d18e3f2d38
parent1e927d39b4bf6d1177dee0dd4a6c60bf270db3f2 (diff)
downloadgitlab-ce-api-project-upload.tar.gz
DRY up upload and download servicesapi-project-upload
-rw-r--r--app/services/projects/download_service.rb13
-rw-r--r--app/services/projects/upload_service.rb13
-rw-r--r--app/uploaders/file_uploader.rb15
-rw-r--r--lib/gitlab/fogbugz_import/importer.rb2
-rw-r--r--spec/services/projects/download_service_spec.rb24
5 files changed, 30 insertions, 37 deletions
diff --git a/app/services/projects/download_service.rb b/app/services/projects/download_service.rb
index b846a59ed94..6386f57fb0d 100644
--- a/app/services/projects/download_service.rb
+++ b/app/services/projects/download_service.rb
@@ -16,18 +16,7 @@ module Projects
uploader.download!(@url)
uploader.store!
- filename = uploader.image? ? uploader.file.basename : uploader.file.filename
-
- escaped_filename = filename.gsub("]", "\\]")
- markdown = "[#{escaped_filename}](#{uploader.secure_url})"
- markdown.prepend("!") if uploader.image?
-
- {
- 'alt' => filename,
- 'url' => uploader.secure_url,
- 'is_image' => uploader.image?,
- 'markdown' => markdown
- }
+ uploader.to_h
end
private
diff --git a/app/services/projects/upload_service.rb b/app/services/projects/upload_service.rb
index 36ccf1cda12..012e82a7704 100644
--- a/app/services/projects/upload_service.rb
+++ b/app/services/projects/upload_service.rb
@@ -10,18 +10,7 @@ module Projects
uploader = FileUploader.new(@project)
uploader.store!(@file)
- filename = uploader.image? ? uploader.file.basename : uploader.file.filename
-
- escaped_filename = filename.gsub("]", "\\]")
- markdown = "[#{escaped_filename}](#{uploader.secure_url})"
- markdown.prepend("!") if uploader.image?
-
- {
- alt: filename,
- url: uploader.secure_url,
- is_image: uploader.image?,
- markdown: markdown
- }
+ uploader.to_h
end
private
diff --git a/app/uploaders/file_uploader.rb b/app/uploaders/file_uploader.rb
index ac920119a85..86d24469e05 100644
--- a/app/uploaders/file_uploader.rb
+++ b/app/uploaders/file_uploader.rb
@@ -30,4 +30,19 @@ class FileUploader < CarrierWave::Uploader::Base
def secure_url
File.join("/uploads", @secret, file.filename)
end
+
+ def to_h
+ filename = image? ? self.file.basename : self.file.filename
+ escaped_filename = filename.gsub("]", "\\]")
+
+ markdown = "[#{escaped_filename}](#{self.secure_url})"
+ markdown.prepend("!") if image?
+
+ {
+ alt: filename,
+ url: self.secure_url,
+ is_image: image?,
+ markdown: markdown
+ }
+ end
end
diff --git a/lib/gitlab/fogbugz_import/importer.rb b/lib/gitlab/fogbugz_import/importer.rb
index 0e6bee732f1..db580b5e578 100644
--- a/lib/gitlab/fogbugz_import/importer.rb
+++ b/lib/gitlab/fogbugz_import/importer.rb
@@ -232,7 +232,7 @@ module Gitlab
return nil if res.nil?
- res['markdown']
+ res[:markdown]
end
def build_attachment_url(rel_url)
diff --git a/spec/services/projects/download_service_spec.rb b/spec/services/projects/download_service_spec.rb
index 5ceed5af9a5..f252e2c5902 100644
--- a/spec/services/projects/download_service_spec.rb
+++ b/spec/services/projects/download_service_spec.rb
@@ -33,12 +33,12 @@ describe Projects::DownloadService, services: true do
@link_to_file = download_file(@project, url)
end
- it { expect(@link_to_file).to have_key('alt') }
- it { expect(@link_to_file).to have_key('url') }
- it { expect(@link_to_file).to have_key('is_image') }
- it { expect(@link_to_file['is_image']).to be true }
- it { expect(@link_to_file['url']).to match('rails_sample.jpg') }
- it { expect(@link_to_file['alt']).to eq('rails_sample') }
+ it { expect(@link_to_file).to have_key(:alt) }
+ it { expect(@link_to_file).to have_key(:url) }
+ it { expect(@link_to_file).to have_key(:is_image) }
+ it { expect(@link_to_file[:is_image]).to be true }
+ it { expect(@link_to_file[:url]).to match('rails_sample.jpg') }
+ it { expect(@link_to_file[:alt]).to eq('rails_sample') }
end
context 'a txt file' do
@@ -47,12 +47,12 @@ describe Projects::DownloadService, services: true do
@link_to_file = download_file(@project, url)
end
- it { expect(@link_to_file).to have_key('alt') }
- it { expect(@link_to_file).to have_key('url') }
- it { expect(@link_to_file).to have_key('is_image') }
- it { expect(@link_to_file['is_image']).to be false }
- it { expect(@link_to_file['url']).to match('doc_sample.txt') }
- it { expect(@link_to_file['alt']).to eq('doc_sample.txt') }
+ it { expect(@link_to_file).to have_key(:alt) }
+ it { expect(@link_to_file).to have_key(:url) }
+ it { expect(@link_to_file).to have_key(:is_image) }
+ it { expect(@link_to_file[:is_image]).to be false }
+ it { expect(@link_to_file[:url]).to match('doc_sample.txt') }
+ it { expect(@link_to_file[:alt]).to eq('doc_sample.txt') }
end
end
end