Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions app/services/org_selection/search_service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class << self
def search_combined(search_term:)
return [] unless search_term.present? && search_term.length > 2

orgs = local_search(search_term: search_term)
orgs = local_search(search_term: search_term, managed_orgs_only: true)
orgs = [] unless orgs.present?
# If we got an exact match out of the database then skip the
# external searches
Expand Down Expand Up @@ -62,15 +62,17 @@ def name_without_alias(name:)

def expiry
expiration = Rails.configuration.x.cache.org_selection_expiration
expiration.present? ? expiration : 1.day
expiration.present? ? expiration : 1.hour
end

def local_search(search_term:)
def local_search(search_term:, managed_orgs_only: false)
return [] unless search_term.present?

Rails.cache.fetch(['org_selection-local', search_term], expires_in: expiry) do
Org.includes(identifiers: :identifier_scheme)
.search(name_without_alias(name: search_term)).to_a
cache_key = ['org_selection-local', search_term, managed_orgs_only]
Rails.cache.fetch(cache_key, expires_in: expiry) do
scope = Org.includes(identifiers: :identifier_scheme)
scope = scope.where(managed: true) if managed_orgs_only
scope.search(name_without_alias(name: search_term)).to_a
end
end

Expand Down
2 changes: 1 addition & 1 deletion config/initializers/_dmproadmap.rb
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ class Application < Rails::Application
# ---------------------------------------------------- #

# Determines how long to cache results for OrgSelection::SearchService
config.x.cache.org_selection_expiration = 86_400
config.x.cache.org_selection_expiration = 3600
# Determines how long to cache results for the ResearchProjectsController
config.x.cache.research_projects_expiration = 86_400

Expand Down