Class: Renalware::Letters::SavePdfLetterToFileJob

Inherits:
ApplicationJob
  • Object
show all
Defined in:
app/jobs/renalware/letters/save_pdf_letter_to_file_job.rb

Overview

Used for example in a host app like renalware-kch to generate a PDF letter for saving to the electronic public register

Instance Method Summary collapse

Instance Method Details

#create_folder_if_not_exists(path) ⇒ Object



25
26
27
# File 'app/jobs/renalware/letters/save_pdf_letter_to_file_job.rb', line 25

def create_folder_if_not_exists(path)
  FileUtils.mkdir_p(path.dirname)
end

#pdf_data_for(letter) ⇒ Object



20
21
22
23
# File 'app/jobs/renalware/letters/save_pdf_letter_to_file_job.rb', line 20

def pdf_data_for(letter)
  letter = Renalware::Letters::LetterPresenter.new(letter)
  Renalware::Letters::PdfRenderer.call(letter)
end

#perform(letter:, file_path:) ⇒ Object



14
15
16
17
18
# File 'app/jobs/renalware/letters/save_pdf_letter_to_file_job.rb', line 14

def perform(letter:, file_path:)
  file_path = Pathname(file_path)
  create_folder_if_not_exists(file_path)
  File.open(file_path, "wb") { |file| file << pdf_data_for(letter) }
end