From 5d8ec961728a2a2147e448e7eda1724b230087d4 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Fri, 7 Feb 2025 02:11:50 -0800 Subject: [PATCH] Updates excluded methods and calculate_count * Use `includes` instead of `joins` * Use a less-insane way of counting --- app/controllers/api/v1/parties_controller.rb | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/controllers/api/v1/parties_controller.rb b/app/controllers/api/v1/parties_controller.rb index b6137c2..49fd888 100644 --- a/app/controllers/api/v1/parties_controller.rb +++ b/app/controllers/api/v1/parties_controller.rb @@ -365,25 +365,29 @@ module Api return unless params[:excludes] excluded = params[:excludes].split(',').filter { |id| id[0] == '3' } - GridCharacter.joins(:object) + GridCharacter.includes(:object) .where(characters: { granblue_id: excluded }) .where('grid_characters.party_id = parties.id') end + # Generates subquery for excluded summons + # @return [ActiveRecord::Relation, nil] exclusion query def excluded_summons return unless params[:excludes] excluded = params[:excludes].split(',').filter { |id| id[0] == '2' } - GridSummon.joins(:object) + GridSummon.includes(:object) .where(summons: { granblue_id: excluded }) .where('grid_summons.party_id = parties.id') end + # Generates subquery for excluded weapons + # @return [ActiveRecord::Relation, nil] exclusion query def excluded_weapons return unless params[:excludes] excluded = params[:excludes].split(',').filter { |id| id[0] == '1' } - GridWeapon.joins(:object) + GridWeapon.includes(:object) .where(weapons: { granblue_id: excluded }) .where('grid_weapons.party_id = parties.id') end @@ -403,7 +407,8 @@ module Api # @param query [ActiveRecord::Relation] current query # @return [Integer] total count def calculate_count(query) - query.count.values.sum + # query.count.values.sum + query.count end # Calculates total pages for pagination