post replacements: fix self-replacements; don't swallow upload errors.
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
class UploadService
|
class UploadService
|
||||||
class Replacer
|
class Replacer
|
||||||
extend Memoist
|
extend Memoist
|
||||||
|
class Error < Exception; end
|
||||||
|
|
||||||
attr_reader :post, :replacement
|
attr_reader :post, :replacement
|
||||||
|
|
||||||
@@ -86,12 +87,13 @@ class UploadService
|
|||||||
tag_string: replacement.tags,
|
tag_string: replacement.tags,
|
||||||
source: replacement.replacement_url,
|
source: replacement.replacement_url,
|
||||||
file: replacement.replacement_file,
|
file: replacement.replacement_file,
|
||||||
|
replaced_post: post,
|
||||||
original_post_id: post.id
|
original_post_id: post.id
|
||||||
)
|
)
|
||||||
upload = preprocessor.start!
|
upload = preprocessor.start!
|
||||||
return if upload.is_errored?
|
raise Error, upload.status if upload.is_errored?
|
||||||
upload = preprocessor.finish!(upload)
|
upload = preprocessor.finish!(upload)
|
||||||
return if upload.is_errored?
|
raise Error, upload.status if upload.is_errored?
|
||||||
md5_changed = upload.md5 != post.md5
|
md5_changed = upload.md5 != post.md5
|
||||||
|
|
||||||
replacement.replacement_url = find_replacement_url(replacement, upload)
|
replacement.replacement_url = find_replacement_url(replacement, upload)
|
||||||
|
|||||||
@@ -674,7 +674,7 @@ class UploadServiceTest < ActiveSupport::TestCase
|
|||||||
end
|
end
|
||||||
|
|
||||||
should "throw an error" do
|
should "throw an error" do
|
||||||
assert_raises(ActiveRecord::RecordNotUnique) do
|
assert_raises(UploadService::Replacer::Error) do
|
||||||
as_user { @post2.replace!(replacement_url: @new_url) }
|
as_user { @post2.replace!(replacement_url: @new_url) }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user