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