Sha256: 1dbc45f01b40423874f0bacba05763b708ab99e66c46f5f7113bed1eb153cb65

Contents?: true

Size: 1 KB

Versions: 16

Compression:

Stored size: 1 KB

Contents

# frozen_string_literal: true

module Lcms
  module Engine
    class FindLessonsInteractor < BaseInteractor
      attr_reader :props

      def run
        @props = pagination.serialize(lessons, serializer).merge(filterbar.props)
      end

      private

      def filterbar
        @filterbar ||= Filterbar.new(params)
      end

      def pagination
        @pagination ||= Pagination.new(params)
      end

      def search?
        filterbar.search_term.present?
      end

      def serializer
        search? ? SearchResourceSerializer : ResourceSerializer
      end

      def lessons
        if search?
          Search::Document
            .search(filterbar.search_term, filterbar.search_params.merge(doc_type: :lesson))
            .paginate(pagination.params)

        else
          Resource.tree.lessons
            .where_subject(filterbar.subjects)
            .where_grade(filterbar.grades)
            .ordered
            .paginate(pagination.params(strict: true))
        end
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
lcms-engine-0.5.5 app/interactors/lcms/engine/find_lessons_interactor.rb
lcms-engine-0.5.4 app/interactors/lcms/engine/find_lessons_interactor.rb
lcms-engine-0.5.3 app/interactors/lcms/engine/find_lessons_interactor.rb
lcms-engine-0.5.2 app/interactors/lcms/engine/find_lessons_interactor.rb
lcms-engine-0.5.1 app/interactors/lcms/engine/find_lessons_interactor.rb
lcms-engine-0.5.0 app/interactors/lcms/engine/find_lessons_interactor.rb
lcms-engine-0.4.2 app/interactors/lcms/engine/find_lessons_interactor.rb
lcms-engine-0.4.1 app/interactors/lcms/engine/find_lessons_interactor.rb
lcms-engine-0.4.0 app/interactors/lcms/engine/find_lessons_interactor.rb
lcms-engine-0.3.1 app/interactors/lcms/engine/find_lessons_interactor.rb
lcms-engine-0.1.4 app/interactors/lcms/engine/find_lessons_interactor.rb
lcms-engine-0.3.0 app/interactors/lcms/engine/find_lessons_interactor.rb
lcms-engine-0.1.3 app/interactors/lcms/engine/find_lessons_interactor.rb
lcms-engine-0.2.0 app/interactors/lcms/engine/find_lessons_interactor.rb
lcms-engine-0.1.2 app/interactors/lcms/engine/find_lessons_interactor.rb
lcms-engine-0.1.0 app/interactors/lcms/engine/find_lessons_interactor.rb