Sha256: 09233799049724648755972b109f38a6606d6411959eb628e9de9a3ec977e3d5

Contents?: true

Size: 815 Bytes

Versions: 47

Compression:

Stored size: 815 Bytes

Contents

# frozen_string_literal: true

require_dependency "renalware/letters"
require "fileutils"

module Renalware
  module Letters
    # Used for example in a host app like renalware-blt to generate an RTF letter for saving to
    # the electronic public register, aka EPR/CRS.
    class SaveRtfLetterToFileJob < ApplicationJob
      queue_as :rtf_generation
      queue_with_priority 1

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

      def rtf_data_for(letter)
        RTFRenderer.new(LetterPresenterFactory.new(letter)).render
      end

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

Version data entries

47 entries across 47 versions & 1 rubygems

Version Path
renalware-core-2.0.159 app/jobs/renalware/letters/save_rtf_letter_to_file_job.rb
renalware-core-2.0.158 app/jobs/renalware/letters/save_rtf_letter_to_file_job.rb
renalware-core-2.0.157 app/jobs/renalware/letters/save_rtf_letter_to_file_job.rb
renalware-core-2.0.156 app/jobs/renalware/letters/save_rtf_letter_to_file_job.rb
renalware-core-2.0.155 app/jobs/renalware/letters/save_rtf_letter_to_file_job.rb
renalware-core-2.0.153 app/jobs/renalware/letters/save_rtf_letter_to_file_job.rb
renalware-core-2.0.152 app/jobs/renalware/letters/save_rtf_letter_to_file_job.rb
renalware-core-2.0.151 app/jobs/renalware/letters/save_rtf_letter_to_file_job.rb
renalware-core-2.0.149 app/jobs/renalware/letters/save_rtf_letter_to_file_job.rb
renalware-core-2.0.148 app/jobs/renalware/letters/save_rtf_letter_to_file_job.rb
renalware-core-2.0.147 app/jobs/renalware/letters/save_rtf_letter_to_file_job.rb
renalware-core-2.0.146 app/jobs/renalware/letters/save_rtf_letter_to_file_job.rb
renalware-core-2.0.145 app/jobs/renalware/letters/save_rtf_letter_to_file_job.rb
renalware-core-2.0.144 app/jobs/renalware/letters/save_rtf_letter_to_file_job.rb
renalware-core-2.0.143 app/jobs/renalware/letters/save_rtf_letter_to_file_job.rb
renalware-core-2.0.142 app/jobs/renalware/letters/save_rtf_letter_to_file_job.rb
renalware-core-2.0.141 app/jobs/renalware/letters/save_rtf_letter_to_file_job.rb
renalware-core-2.0.140 app/jobs/renalware/letters/save_rtf_letter_to_file_job.rb
renalware-core-2.0.139 app/jobs/renalware/letters/save_rtf_letter_to_file_job.rb
renalware-core-2.0.138 app/jobs/renalware/letters/save_rtf_letter_to_file_job.rb