DRY up upload and download services
This commit is contained in:
parent
1e927d39b4
commit
0614793b38
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -232,7 +232,7 @@ module Gitlab
|
|||
|
||||
return nil if res.nil?
|
||||
|
||||
res['markdown']
|
||||
res[:markdown]
|
||||
end
|
||||
|
||||
def build_attachment_url(rel_url)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue