Sha256: 51501e990133e605562a1a6d4c432eb9f40eb3fdaf87e277ee8181be01bb0179

Contents?: true

Size: 1.29 KB

Versions: 114

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

require_dependency "renalware/letters"

module Renalware
  module Letters
    # Responsible for allowing a user to view/download a printable PDF that can be sent to an
    # envelope stuffer. It will contain intervleaved address sheets and letters so that the machine
    # can stuff a letter for each letter recipient.
    class PrintableLettersController < Letters::BaseController
      def show
        letter = find_letter(params[:letter_id])
        authorize letter
        letter = present_letter(letter)
        render_pdf_as_collated_address_sheet_and_letter_for_each_recipient(letter)
      end

      private

      def find_letter(id)
        patient.letters
          .approved
          .with_patient
          .with_main_recipient
          .with_cc_recipients
          .find(id)
      end

      def present_letter(letter)
        LetterPresenterFactory.new(letter)
      end

      def render_pdf_as_collated_address_sheet_and_letter_for_each_recipient(letter)
        send_data(
          Printing::DuplexInterleavedPdfRenderer.call(letter),
          filename: letter.pdf_filename,
          type: "application/pdf",
          disposition: disposition
        )
      end

      def disposition
        params.fetch("disposition", "inline")
      end
    end
  end
end

Version data entries

114 entries across 114 versions & 1 rubygems

Version Path
renalware-core-2.1.1 app/controllers/renalware/letters/printable_letters_controller.rb
renalware-core-2.1.0 app/controllers/renalware/letters/printable_letters_controller.rb
renalware-core-2.0.167 app/controllers/renalware/letters/printable_letters_controller.rb
renalware-core-2.0.166 app/controllers/renalware/letters/printable_letters_controller.rb
renalware-core-2.0.165 app/controllers/renalware/letters/printable_letters_controller.rb
renalware-core-2.0.164 app/controllers/renalware/letters/printable_letters_controller.rb
renalware-core-2.0.163 app/controllers/renalware/letters/printable_letters_controller.rb
renalware-core-2.0.162 app/controllers/renalware/letters/printable_letters_controller.rb
renalware-core-2.0.161 app/controllers/renalware/letters/printable_letters_controller.rb
renalware-core-2.0.160 app/controllers/renalware/letters/printable_letters_controller.rb
renalware-core-2.0.159 app/controllers/renalware/letters/printable_letters_controller.rb
renalware-core-2.0.158 app/controllers/renalware/letters/printable_letters_controller.rb
renalware-core-2.0.157 app/controllers/renalware/letters/printable_letters_controller.rb
renalware-core-2.0.156 app/controllers/renalware/letters/printable_letters_controller.rb
renalware-core-2.0.155 app/controllers/renalware/letters/printable_letters_controller.rb
renalware-core-2.0.153 app/controllers/renalware/letters/printable_letters_controller.rb
renalware-core-2.0.152 app/controllers/renalware/letters/printable_letters_controller.rb
renalware-core-2.0.151 app/controllers/renalware/letters/printable_letters_controller.rb
renalware-core-2.0.149 app/controllers/renalware/letters/printable_letters_controller.rb
renalware-core-2.0.148 app/controllers/renalware/letters/printable_letters_controller.rb