Skip to content

Commit 7571cb5

Browse files
authored
Merge pull request #1229 from ctti-clinicaltrials/dev
hotfix: update search results logic
2 parents 74145c7 + c7ff2f7 commit 7571cb5

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

app/models/util/updater_v2.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,11 +93,11 @@ def process_search_terms
9393
return unless Support::Setting.export_search_results?
9494

9595
groups = SearchTerm.distinct.pluck(:group).compact
96-
log("Processing #{groups.count} search term groups...")
96+
log("Processing #{groups.count} search term groups...", event_log = false)
9797

9898
groups.each do |group|
9999
begin
100-
log("Refreshing search results for group: #{group}")
100+
log("Refreshing search results for group: #{group}", event_log = false)
101101
@search_service.refresh_search_results_for(group)
102102
rescue => e
103103
log("Error processing group #{group}: #{e.message}")

app/services/ct_gov/search_results_service.rb

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ def fetch_studies_for(search_term, group: nil, page_size: 1000)
1313
attributes = { term: search_term.downcase }
1414
attributes[:group] = group if group.present?
1515
search_term_record = SearchTerm.find_by(term: attributes[:term]) || SearchTerm.create!(attributes)
16+
17+
# current logic: remove all existing search results for the term and insert fresh results
18+
SearchTermResult.where(search_term_id: search_term_record.id).delete_all
1619

1720
@api_client.search_studies(query: search_term, page_size: page_size) do |studies|
1821
persist(studies, search_term_record)
@@ -35,6 +38,7 @@ def refresh_search_results_for(group)
3538

3639
def persist(studies, search_term)
3740
silence_active_record do
41+
# covers potential discrepancy between API and aact nct_ids ran outside of updater process
3842
nct_ids = studies.map { |study| study.dig(*@api_client.nct_id_path) }.compact
3943
valid_nct_ids = Study.where(nct_id: nct_ids).pluck(:nct_id)
4044

@@ -47,13 +51,9 @@ def persist(studies, search_term)
4751
}
4852
end
4953

50-
# current logic: remove all existing search results for the term and insert fresh results
51-
ActiveRecord::Base.transaction do
52-
SearchTermResult.where(search_term_id: search_term.id).delete_all
53-
return if study_results.empty?
54-
SearchTermResult.insert_all(study_results)
55-
end
56-
54+
return if study_results.empty?
55+
SearchTermResult.insert_all(study_results)
56+
5757
Rails.logger.info("Imported #{study_results.size} search results for term: #{search_term.term}")
5858
end
5959
rescue => e

0 commit comments

Comments
 (0)