mirror of
https://github.com/discourse/discourse.git
synced 2024-11-29 04:03:57 -06:00
Merge pull request #6394 from tgxworld/recover_broken_uploads
FIX: Onceoff job to recover missing post uploads.
This commit is contained in:
commit
6a2589353b
22
app/jobs/onceoff/recover_post_uploads.rb
Normal file
22
app/jobs/onceoff/recover_post_uploads.rb
Normal file
@ -0,0 +1,22 @@
|
||||
require_dependency "upload_recovery"
|
||||
|
||||
module Jobs
|
||||
class RecoverPostUploads < Jobs::Onceoff
|
||||
MIN_PERIOD = 30
|
||||
MAX_PERIOD = 120
|
||||
|
||||
def execute_onceoff(args)
|
||||
UploadRecovery.new.recover(Post.where(
|
||||
"baked_at >= ?",
|
||||
grace_period.days.ago
|
||||
))
|
||||
end
|
||||
|
||||
def grace_period
|
||||
SiteSetting.purge_deleted_uploads_grace_period_days.clamp(
|
||||
MIN_PERIOD,
|
||||
MAX_PERIOD
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
17
spec/jobs/recover_post_uploads_spec.rb
Normal file
17
spec/jobs/recover_post_uploads_spec.rb
Normal file
@ -0,0 +1,17 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe Jobs::RecoverPostUploads do
|
||||
describe '#grace_period' do
|
||||
it 'should restrict the grace period to the right range' do
|
||||
SiteSetting.purge_deleted_uploads_grace_period_days =
|
||||
described_class::MIN_PERIOD - 1
|
||||
|
||||
expect(described_class.new.grace_period).to eq(30)
|
||||
|
||||
SiteSetting.purge_deleted_uploads_grace_period_days =
|
||||
described_class::MAX_PERIOD + 1
|
||||
|
||||
expect(described_class.new.grace_period).to eq(120)
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue
Block a user