1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-08-02 20:15:22 +02:00

Add tag filtering (#1240)

This commit is contained in:
Zach Gollwitzer 2024-10-04 09:17:48 -04:00 committed by GitHub
parent 73d61fc990
commit e8d7ee3270
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 40 additions and 6 deletions

View file

@ -13,8 +13,15 @@ class Account::Transaction < ApplicationRecord
class << self
def search(params)
query = all
query = query.joins("LEFT JOIN categories ON categories.id = account_transactions.category_id").where(categories: { name: params[:categories] }) if params[:categories].present?
query = query.joins("LEFT JOIN merchants ON merchants.id = account_transactions.merchant_id").where(merchants: { name: params[:merchants] }) if params[:merchants].present?
query = query.joins(:category).where(categories: { name: params[:categories] }) if params[:categories].present?
query = query.joins(:merchant).where(merchants: { name: params[:merchants] }) if params[:merchants].present?
if params[:tags].present?
query = query.joins(:tags)
.where(tags: { name: params[:tags] })
.distinct
end
query
end
@ -25,7 +32,7 @@ class Account::Transaction < ApplicationRecord
private
def searchable_keys
%i[categories merchants]
%i[categories merchants tags]
end
end