From 04c9d9268b59199ff28e0cfff4c6b8d8cba8a198 Mon Sep 17 00:00:00 2001 From: Donal McBreen Date: Fri, 21 Nov 2025 14:53:17 +0000 Subject: [PATCH] Remove wrapper methods and kwargs --- app/models/card/searchable.rb | 2 +- app/models/search.rb | 4 ---- app/models/search/record.rb | 10 +++++++--- app/models/user/searcher.rb | 2 +- test/models/search_test.rb | 8 ++++---- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/models/card/searchable.rb b/app/models/card/searchable.rb index 669dd2bd4..caf9b4fea 100644 --- a/app/models/card/searchable.rb +++ b/app/models/card/searchable.rb @@ -7,7 +7,7 @@ module Card::Searchable has_many :card_search_records, class_name: "Search::Record" scope :mentioning, ->(query, user:) do - joins(:card_search_records).merge(Search::Record.for_query(query: Search::Query.wrap(query), user: user)) + joins(:card_search_records).merge(Search::Record.for_query(query, user: user)) end end diff --git a/app/models/search.rb b/app/models/search.rb index 68dbbcd21..f81b9a9d8 100644 --- a/app/models/search.rb +++ b/app/models/search.rb @@ -2,8 +2,4 @@ module Search def self.table_name_prefix "search_" end - - def self.results(query:, user:) - Record.search(query: Query.wrap(query), user: user) - end end diff --git a/app/models/search/record.rb b/app/models/search/record.rb index 49b48aa5f..424a40363 100644 --- a/app/models/search/record.rb +++ b/app/models/search/record.rb @@ -6,7 +6,9 @@ class Search::Record < ApplicationRecord validates :account_id, :searchable_type, :searchable_id, :card_id, :board_id, :created_at, presence: true - scope :for_query, ->(query:, user:) do + scope :for_query, ->(query, user:) do + query = Search::Query.wrap(query) + if query.valid? && user.board_ids.any? matching(query.to_s, user.account_id).where(account_id: user.account_id, board_id: user.board_ids) else @@ -14,8 +16,10 @@ class Search::Record < ApplicationRecord end end - scope :search, ->(query:, user:) do - for_query(query: query, user: user) + scope :search, ->(query, user:) do + query = Search::Query.wrap(query) + + for_query(query, user: user) .includes(:searchable, card: [ :board, :creator ]) .order(created_at: :desc) .select(:id, :account_id, :searchable_type, :searchable_id, :card_id, :board_id, :title, :content, :created_at, *search_fields(query)) diff --git a/app/models/user/searcher.rb b/app/models/user/searcher.rb index 951717082..60a901ee8 100644 --- a/app/models/user/searcher.rb +++ b/app/models/user/searcher.rb @@ -6,7 +6,7 @@ module User::Searcher end def search(terms) - Search.results(query: terms, user: self) + Search::Record.search(terms, user: self) end def remember_search(terms) diff --git a/test/models/search_test.rb b/test/models/search_test.rb index e27bcbdfe..be4174ff8 100644 --- a/test/models/search_test.rb +++ b/test/models/search_test.rb @@ -9,10 +9,10 @@ class SearchTest < ActiveSupport::TestCase comment_card = @board.cards.create!(title: "Some card", creator: @user) comment_card.comments.create!(body: "overflowing text", creator: @user) - results = Search.results(query: "layout", user: @user) + results = Search::Record.search("layout", user: @user) assert results.find { |it| it.card_id == card.id } - results = Search.results(query: "overflowing", user: @user) + results = Search::Record.search("overflowing", user: @user) assert results.find { |it| it.card_id == comment_card.id && it.searchable_type == "Comment" } # Don't include inaccessible boards @@ -21,13 +21,13 @@ class SearchTest < ActiveSupport::TestCase accessible_card = @board.cards.create!(title: "searchable content", creator: @user) inaccessible_card = inaccessible_board.cards.create!(title: "searchable content", creator: other_user) - results = Search.results(query: "searchable", user: @user) + results = Search::Record.search("searchable", user: @user) assert results.find { |it| it.card_id == accessible_card.id } assert_not results.find { |it| it.card_id == inaccessible_card.id } # Empty board_ids returns no results user_without_access = User.create!(name: "No Access User", account: @account) - results = Search.results(query: "anything", user: user_without_access) + results = Search::Record.search("anything", user: user_without_access) assert_empty results end end