Sha256: 434def78b5334900972761225eeecb750ca1bc5e56bf4e58942e989e4efa1204

Contents?: true

Size: 1.55 KB

Versions: 13

Compression:

Stored size: 1.55 KB

Contents

module Sufia
  class QueryService
    # query to find works 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
      relation.where(build_date_query(start_datetime, end_datetime))
    end

    def find_registered_in_date_range(start_datetime, end_datetime = nil)
      find_by_date_created(start_datetime, end_datetime).merge(where_registered)
    end

    def find_public_in_date_range(start_datetime, end_datetime = nil)
      find_by_date_created(start_datetime, end_datetime).merge(where_public)
    end

    def where_public
      where_access_is 'public'
    end

    def where_registered
      where_access_is 'registered'
    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

    delegate :count, to: :relation

    def relation
      CurationConcerns::WorkRelation.new
    end

    private

      def where_access_is(access_level)
        relation.where Hydra.config.permissions.read.group => access_level
      end

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

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
sufia-7.4.1 app/services/sufia/query_service.rb
sufia-7.4.0 app/services/sufia/query_service.rb
sufia-7.3.1 app/services/sufia/query_service.rb
sufia-7.3.0 app/services/sufia/query_service.rb
sufia-7.3.0.rc3 app/services/sufia/query_service.rb
sufia-7.3.0.rc2 app/services/sufia/query_service.rb
sufia-7.3.0.rc1 app/services/sufia/query_service.rb
sufia-7.2.0 app/services/sufia/query_service.rb
sufia-7.1.0 app/services/sufia/query_service.rb
sufia-7.0.0 app/services/sufia/query_service.rb
sufia-7.0.0.rc2 app/services/sufia/query_service.rb
sufia-7.0.0.rc1 app/services/sufia/query_service.rb
sufia-7.0.0.beta4 app/services/sufia/query_service.rb