Sha256: 89ddba41da66caeb752d12137d3aba22441a333b965173b097ef166249a5ad5b
Contents?: true
Size: 1.21 KB
Versions: 42
Compression:
Stored size: 1.21 KB
Contents
# frozen_string_literal: true require_dependency "renalware/clinics" module Renalware module Events class EventListQuery attr_reader :params def initialize(params: {}) @params = params @params[:s] = "created_at DESC" if @params[:s].blank? end def call search .result .eager_load(:event_type, :created_by, :patient) .ordered end def search @search ||= Event.include(Ransackers).ransack(params) end # Create ransackers to mixin to Event at runtime. # These for instance cast created_at to a date so that for instance the predicate # created_gteq excludes any time references - using created_gteq and created_lteq without # this creates SQL that cannot find an event on one day, because of the way Ransack adds # start of date and end of day times. module Ransackers extend ActiveSupport::Concern included do ransacker :created_at, type: :date do Arel.sql("DATE(events.created_at)") end ransacker :created_at, type: :date do Arel.sql("DATE(events.created_at)") end end end end end end
Version data entries
42 entries across 42 versions & 1 rubygems