Skip to content

Commit

Permalink
Rename QueryService to Statistics::QueryService
Browse files Browse the repository at this point in the history
This better reflects it's scope as specifically for statistics.
We may want to repurpose a general Hyrax::QueryService for the Valkyrie
integration.
  • Loading branch information
jcoyne committed Oct 9, 2017
1 parent 183ac0a commit bed17ae
Show file tree
Hide file tree
Showing 7 changed files with 71 additions and 60 deletions.
1 change: 0 additions & 1 deletion .rubocop_fixme.yml
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,6 @@ RSpec/LetBeforeExamples:
- 'spec/forms/hyrax/forms/collection_form_spec.rb'
- 'spec/presenters/hyrax/collection_presenter_spec.rb'
- 'spec/presenters/hyrax/trophy_presenter_spec.rb'
- 'spec/services/hyrax/query_service_spec.rb'
- 'spec/services/hyrax/workflow/action_taken_service_spec.rb'
- 'spec/services/hyrax/workflow/notification_service_spec.rb'

Expand Down
53 changes: 0 additions & 53 deletions app/services/hyrax/query_service.rb

This file was deleted.

6 changes: 5 additions & 1 deletion app/services/hyrax/statistics/depositors/summary.rb
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,11 @@ def query
end

def date_query
Hyrax::QueryService.new.build_date_query(start_dt, end_dt) if start_dt.present?
query_service.build_date_query(start_dt, end_dt) if start_dt.present?
end

def query_service
Hyrax::Statistics::QueryService.new
end
end
end
Expand Down
6 changes: 5 additions & 1 deletion app/services/hyrax/statistics/over_time.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,11 @@ def point(min, max)
end

def query(min, max)
QueryService.new.build_date_query(min, max)
query_service.build_date_query(min, max)
end

def query_service
Hyrax::Statistics::QueryService.new
end

# How many points are in this data set
Expand Down
55 changes: 55 additions & 0 deletions app/services/hyrax/statistics/query_service.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
module Hyrax
module Statistics
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
Hyrax::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
end
2 changes: 1 addition & 1 deletion app/services/hyrax/statistics/works/count.rb
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def by_permission
private

def query_service
@query_service ||= Hyrax::QueryService.new
@query_service ||= Hyrax::Statistics::QueryService.new
end

def by_date_and_permission
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RSpec.describe Hyrax::QueryService, :clean_repo do
RSpec.describe Hyrax::Statistics::QueryService, :clean_repo do
let(:service) { described_class.new }

describe "#count" do
Expand Down Expand Up @@ -54,8 +54,9 @@
end

context "when file is registered" do
it { is_expected.to eq [work] }
let(:read_groups) { ["registered"] }

it { is_expected.to eq [work] }
end
end

Expand All @@ -77,8 +78,9 @@
end

context "when file is registered" do
it { is_expected.to eq [] }
let(:read_groups) { ["registered"] }

it { is_expected.to eq [] }
end
end

Expand Down

0 comments on commit bed17ae

Please sign in to comment.