Sha256: ece1fd5d4049433c7b4883ae0dbbf06f2f74ecdf3c381b9dd9cb228c9ca92e34

Contents?: true

Size: 1.32 KB

Versions: 69

Compression:

Stored size: 1.32 KB

Contents

# frozen_string_literal: true

require_dependency "renalware/letters"

module Renalware
  module Letters
    class ListsController < Letters::BaseController
      include Renalware::Concerns::Pageable

      # rubocop:disable Metrics/MethodLength
      # TODO: Use a presenter here
      def show
        query = LetterQuery.new(q: params[:q])
        letters = find_and_authorize_letters(query)

        locals = {
          letters: letters,
          authors: User.author.ordered,
          typists: User.ordered,
          letterheads: Letters::Letterhead.ordered,
          q: query.search
        }
        respond_to do |format|
          format.html { render(locals: locals) }
          format.js   { render(locals: locals, layout: false) }
        end
      end
      # rubocop:enable Metrics/MethodLength

      private

      def find_and_authorize_letters(query)
        collection = call_query(query).page(page).per(per_page)
        present_letters(collection).tap { |letters| authorize letters }
      end

      def present_letters(letters)
        CollectionPresenter.new(letters, LetterPresenterFactory)
      end

      def call_query(query)
        query
          .call
          .with_patient
          .with_main_recipient
          .with_letterhead
          .with_author
          .with_created_by
      end
    end
  end
end

Version data entries

69 entries across 69 versions & 1 rubygems

Version Path
renalware-core-2.0.109 app/controllers/renalware/letters/lists_controller.rb
renalware-core-2.0.108 app/controllers/renalware/letters/lists_controller.rb
renalware-core-2.0.106 app/controllers/renalware/letters/lists_controller.rb
renalware-core-2.0.105 app/controllers/renalware/letters/lists_controller.rb
renalware-core-2.0.104 app/controllers/renalware/letters/lists_controller.rb
renalware-core-2.0.103 app/controllers/renalware/letters/lists_controller.rb
renalware-core-2.0.102 app/controllers/renalware/letters/lists_controller.rb
renalware-core-2.0.101 app/controllers/renalware/letters/lists_controller.rb
renalware-core-2.0.100 app/controllers/renalware/letters/lists_controller.rb
renalware-core-2.0.99 app/controllers/renalware/letters/lists_controller.rb
renalware-core-2.0.98 app/controllers/renalware/letters/lists_controller.rb
renalware-core-2.0.97 app/controllers/renalware/letters/lists_controller.rb
renalware-core-2.0.96 app/controllers/renalware/letters/lists_controller.rb
renalware-core-2.0.95 app/controllers/renalware/letters/lists_controller.rb
renalware-core-2.0.94 app/controllers/renalware/letters/lists_controller.rb
renalware-core-2.0.93 app/controllers/renalware/letters/lists_controller.rb
renalware-core-2.0.92 app/controllers/renalware/letters/lists_controller.rb
renalware-core-2.0.91 app/controllers/renalware/letters/lists_controller.rb
renalware-core-2.0.90 app/controllers/renalware/letters/lists_controller.rb
renalware-core-2.0.89 app/controllers/renalware/letters/lists_controller.rb