Sha256: dd1c1b3990c7a504a183d129035b9ae104fecb48a2a39fd56e63c34d03582a13

Contents?: true

Size: 1.62 KB

Versions: 57

Compression:

Stored size: 1.62 KB

Contents

# frozen_string_literal: true

require_dependency "renalware/letters"

module Renalware
  module Letters
    class FormattedLettersController < Letters::BaseController
      before_action :load_patient

      layout "renalware/layouts/letter"

      def show
        letter = find_letter(params[:letter_id])
        letter = present_letter(letter)

        respond_to do |format|
          format.html { render locals: { letter: letter } }
          format.pdf  { render_pdf(letter) }
          format.rtf  { render_rtf(letter) }
        end
      end

      private

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

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

      # Here we are jsut printing an ahoc letter for manual stuffing so we pass in
      # an argument to prompt adhic CSS to be included so for example the CCs at the bottom of the
      # letter will render with more padding. See LetterPresenter
      def render_pdf(letter)
        send_data(
          PdfRenderer.call(letter, adhoc_printing: true),
          filename: letter.pdf_filename,
          type: "application/pdf",
          disposition: disposition
        )
      end

      def render_rtf(letter)
        renderer = RTFRenderer.new(letter)
        send_data renderer.render,
                  type: "text/richtext",
                  filename: renderer.filename,
                  disposition: disposition
      end

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

Version data entries

57 entries across 57 versions & 1 rubygems

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