commit
6c18666b7e
4 changed files with 17 additions and 7 deletions
|
@ -26,7 +26,6 @@ module DownloadManager
|
||||||
hydra.run
|
hydra.run
|
||||||
end
|
end
|
||||||
|
|
||||||
# rubocop:disable Style/AutoResourceCleanup
|
|
||||||
# can't be used with typhoeus, otherwise block is closed before the request is run by hydra
|
# can't be used with typhoeus, otherwise block is closed before the request is run by hydra
|
||||||
def download_one(attachment:, path_in_download_dir:, http_client:)
|
def download_one(attachment:, path_in_download_dir:, http_client:)
|
||||||
attachment_path = File.join(destination, path_in_download_dir)
|
attachment_path = File.join(destination, path_in_download_dir)
|
||||||
|
@ -37,12 +36,10 @@ module DownloadManager
|
||||||
File.write(attachment_path, attachment.file.read, mode: 'wb')
|
File.write(attachment_path, attachment.file.read, mode: 'wb')
|
||||||
else
|
else
|
||||||
request = Typhoeus::Request.new(attachment.url)
|
request = Typhoeus::Request.new(attachment.url)
|
||||||
fd = File.open(attachment_path, mode: 'wb')
|
|
||||||
request.on_body do |chunk|
|
request.on_body do |chunk|
|
||||||
fd.write(chunk)
|
File.write(attachment_path, chunk, mode: 'a+b')
|
||||||
end
|
end
|
||||||
request.on_complete do |response|
|
request.on_complete do |response|
|
||||||
fd.close
|
|
||||||
unless response.success?
|
unless response.success?
|
||||||
File.delete(attachment_path) if File.exist?(attachment_path) # -> case of retries failed, must cleanup partialy downloaded file
|
File.delete(attachment_path) if File.exist?(attachment_path) # -> case of retries failed, must cleanup partialy downloaded file
|
||||||
on_error.call(attachment, path_in_download_dir, response.code)
|
on_error.call(attachment, path_in_download_dir, response.code)
|
||||||
|
@ -51,6 +48,5 @@ module DownloadManager
|
||||||
http_client.queue(request)
|
http_client.queue(request)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
# rubocop:enable Style/AutoResourceCleanup
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -111,7 +111,7 @@ class Commentaire < ApplicationRecord
|
||||||
def messagerie_available?
|
def messagerie_available?
|
||||||
return if sent_by_system?
|
return if sent_by_system?
|
||||||
if dossier.present? && !dossier.messagerie_available?
|
if dossier.present? && !dossier.messagerie_available?
|
||||||
errors.add(:dossier, "Il n’est pas possible d’envoyer un message sur un dossier archivé ou en brouillon")
|
errors.add(:dossier, "Il n’est pas possible d’envoyer un message sur un dossier supprimé, archivé ou en brouillon")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -528,7 +528,7 @@ class Dossier < ApplicationRecord
|
||||||
end
|
end
|
||||||
|
|
||||||
def messagerie_available?
|
def messagerie_available?
|
||||||
!brouillon? && !user_deleted? && !archived
|
visible_by_administration? && !hidden_by_user? && !user_deleted? && !archived
|
||||||
end
|
end
|
||||||
|
|
||||||
def expirable?
|
def expirable?
|
||||||
|
|
|
@ -457,6 +457,20 @@ describe Instructeurs::DossiersController, type: :controller do
|
||||||
expect(flash.notice).to be_present
|
expect(flash.notice).to be_present
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "when the dossier is deleted by user" do
|
||||||
|
let(:dossier) { create(:dossier, :accepte, procedure: procedure) }
|
||||||
|
|
||||||
|
before do
|
||||||
|
dossier.update!(hidden_by_user_at: 1.hour.ago)
|
||||||
|
subject
|
||||||
|
end
|
||||||
|
|
||||||
|
it "does not create a commentaire" do
|
||||||
|
expect { subject }.to change(Commentaire, :count).by(0)
|
||||||
|
expect(flash.alert).to be_present
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "#create_avis" do
|
describe "#create_avis" do
|
||||||
|
|
Loading…
Reference in a new issue