Sha256: cf0a88a24c4bee3dbc5b7f1103849f10fefdaa5e471d4fa5150da7e95841511f

Contents?: true

Size: 1.2 KB

Versions: 28

Compression:

Stored size: 1.2 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

      def render_pdf(letter)
        send_data(PdfRenderer.call(letter),
                  filename: letter.pdf_filename,
                  type: "application/pdf",
                  disposition: disposition)
      end

      def render_rtf(letter)
        RTFRenderer.new(letter, self).render
      end

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

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
renalware-core-2.0.46 app/controllers/renalware/letters/formatted_letters_controller.rb
renalware-core-2.0.45 app/controllers/renalware/letters/formatted_letters_controller.rb
renalware-core-2.0.44 app/controllers/renalware/letters/formatted_letters_controller.rb
renalware-core-2.0.43 app/controllers/renalware/letters/formatted_letters_controller.rb
renalware-core-2.0.42 app/controllers/renalware/letters/formatted_letters_controller.rb
renalware-core-2.0.41 app/controllers/renalware/letters/formatted_letters_controller.rb
renalware-core-2.0.40 app/controllers/renalware/letters/formatted_letters_controller.rb
renalware-core-2.0.39 app/controllers/renalware/letters/formatted_letters_controller.rb
renalware-core-2.0.38 app/controllers/renalware/letters/formatted_letters_controller.rb
renalware-core-2.0.37 app/controllers/renalware/letters/formatted_letters_controller.rb
renalware-core-2.0.36 app/controllers/renalware/letters/formatted_letters_controller.rb
renalware-core-2.0.35 app/controllers/renalware/letters/formatted_letters_controller.rb
renalware-core-2.0.34 app/controllers/renalware/letters/formatted_letters_controller.rb
renalware-core-2.0.33 app/controllers/renalware/letters/formatted_letters_controller.rb
renalware-core-2.0.32 app/controllers/renalware/letters/formatted_letters_controller.rb
renalware-core-2.0.31 app/controllers/renalware/letters/formatted_letters_controller.rb
renalware-core-2.0.30 app/controllers/renalware/letters/formatted_letters_controller.rb
renalware-core-2.0.28 app/controllers/renalware/letters/formatted_letters_controller.rb
renalware-core-2.0.27 app/controllers/renalware/letters/formatted_letters_controller.rb
renalware-core-2.0.26 app/controllers/renalware/letters/formatted_letters_controller.rb