Remove wrapper methods and kwargs
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user