Sha256: 75a8172f37e2cba20c21afd5d36fd3bfe1b97e03ff2b0827a87c366fe915e058

Contents?: true

Size: 1.61 KB

Versions: 5

Compression:

Stored size: 1.61 KB

Contents

module Sufia
  module GenericFile
    module Querying
      extend ActiveSupport::Concern

      module ClassMethods
        # query to find generic files created during the time range
        # @param [DateTime] start_datetime starting date time for range query
        # @param [DateTime] end_datetime ending date time for range query
        def find_by_date_created(start_datetime, end_datetime = nil)
          return [] if start_datetime.blank? # no date just return nothing
          where(build_date_query(start_datetime, end_datetime))
        end

        def build_date_query(start_datetime, end_datetime)
          start_date_str =  start_datetime.utc.strftime(date_format)
          end_date_str = if end_datetime.blank?
                           "*"
                         else
                           end_datetime.utc.strftime(date_format)
                         end
          "system_create_dtsi:[#{start_date_str} TO #{end_date_str}]"
        end

        def where_private
          where_access_is 'private'
        end

        def where_public
          where_access_is 'public'
        end

        def where_registered
          where_access_is 'registered'
        end

        def where_access_is(access_level)
          where Solrizer.solr_name('read_access_group', :symbol) => access_level
        end

        def where_digest_is(digest_string)
          where Solrizer.solr_name('digest', :symbol) => urnify(digest_string)
        end

        def urnify(digest_string)
          "urn:sha1:#{digest_string}"
        end

        def date_format
          "%Y-%m-%dT%H:%M:%SZ"
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
sufia-models-6.7.0 app/models/concerns/sufia/generic_file/querying.rb
sufia-models-6.6.1 app/models/concerns/sufia/generic_file/querying.rb
sufia-models-6.6.0 app/models/concerns/sufia/generic_file/querying.rb
sufia-models-6.5.0 app/models/concerns/sufia/generic_file/querying.rb
sufia-models-6.4.0 app/models/concerns/sufia/generic_file/querying.rb