Sha256: 669cd5b9bd776e5cac58f03081a949d299ba70e747ffa753a3bfdfe71ff2489a

Contents?: true

Size: 1.15 KB

Versions: 3

Compression:

Stored size: 1.15 KB

Contents

require_dependency "renalware/dashboard"
require_dependency "collection_presenter"

module Renalware
  module Dashboard
    class DashboardPresenter
      def initialize(user)
        @user = user
      end

      attr_reader :user

      def title
        I18n.t("renalware.dashboard.dashboards.title", name: @user.username&.capitalize)
      end

      def bookmarks
        @bookmarks ||= begin
          Patients.cast_user(user)
                  .bookmarks
                  .ordered
                  .includes(patient: [current_modality: :description])
        end
      end

      def letters_in_progress
        @letters_in_progress ||= begin
          present_letters(
            Letters.cast_author(user).letters.in_progress.reverse
          )
        end
      end

      def unread_messages_receipts
        @unread_messages_receipts ||= begin
          receipts = Messaging.cast_recipient(user).receipts.unread
          CollectionPresenter.new(receipts, Messaging::ReceiptPresenter)
        end
      end

      private

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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
renalware-core-2.0.0.pre.beta7 app/presenters/renalware/dashboard/dashboard_presenter.rb
renalware-core-2.0.0.pre.beta6 app/presenters/renalware/dashboard/dashboard_presenter.rb
renalware-core-2.0.0.pre.beta5 app/presenters/renalware/dashboard/dashboard_presenter.rb