Sha256: e998928881fe25c0883110ba5f05d3666cd7cf3a4172e82fedaa93480b777367

Contents?: true

Size: 913 Bytes

Versions: 1

Compression:

Stored size: 913 Bytes

Contents

# frozen_string_literal: true
class Search < ActiveRecord::Base
  belongs_to_arguments = { optional: true } if Rails.version >= '5.0.0'

  belongs_to :user, belongs_to_arguments

  # use a backwards-compatible serializer until the Rails API stabilizes and we can evaluate for major-revision compatibility
  serialize :query_params, Blacklight::SearchParamsYamlCoder

  attr_accessible :query_params if Blacklight::Utils.needs_attr_accessible?

  # A Search instance is considered a saved search if it has a user_id.
  def saved?
    self.user_id?
  end

  # delete old, unsaved searches
  def self.delete_old_searches(days_old)
    raise ArgumentError, 'days_old is expected to be a number' unless days_old.is_a?(Numeric)
    raise ArgumentError, 'days_old is expected to be greater than 0' if days_old <= 0
    self.where(['created_at < ? AND user_id IS NULL', Time.zone.today - days_old]).destroy_all
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
blacklight-6.25.0 app/models/search.rb