From af960d7a934fc5410d981dae69d76e35a75ca252 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Mon, 21 Aug 2023 20:42:54 -0700 Subject: [PATCH] Fix favorites page by fixing how query is built (#125) --- app/controllers/api/v1/parties_controller.rb | 22 ++++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/app/controllers/api/v1/parties_controller.rb b/app/controllers/api/v1/parties_controller.rb index ef0b048..9c25f5a 100644 --- a/app/controllers/api/v1/parties_controller.rb +++ b/app/controllers/api/v1/parties_controller.rb @@ -90,7 +90,7 @@ module Api conditions = build_filters conditions[:favorites] = { user_id: current_user.id } - query = build_query(conditions) + query = build_query(conditions, true) query = apply_includes(query, params[:includes]) if params[:includes].present? query = apply_excludes(query, params[:excludes]) if params[:excludes].present? @@ -152,14 +152,18 @@ module Api value.to_i unless value.blank? || value.to_i == -1 end - def build_query(conditions) - Party.distinct - .joins(weapons: [:object], summons: [:object], characters: [:object]) - .group('parties.id') - .where(conditions) - .where(name_quality) - .where(user_quality) - .where(original) + def build_query(conditions, favorites = false) + query = Party.distinct + .joins(weapons: [:object], summons: [:object], characters: [:object]) + .group('parties.id') + .where(conditions) + .where(name_quality) + .where(user_quality) + .where(original) + + query = query.joins(:favorites) if favorites + + query end def includes(id)