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