Updates excluded methods and calculate_count
* Use `includes` instead of `joins` * Use a less-insane way of counting
This commit is contained in:
parent
8194844d28
commit
5d8ec96172
1 changed files with 9 additions and 4 deletions
|
|
@ -365,25 +365,29 @@ module Api
|
||||||
return unless params[:excludes]
|
return unless params[:excludes]
|
||||||
|
|
||||||
excluded = params[:excludes].split(',').filter { |id| id[0] == '3' }
|
excluded = params[:excludes].split(',').filter { |id| id[0] == '3' }
|
||||||
GridCharacter.joins(:object)
|
GridCharacter.includes(:object)
|
||||||
.where(characters: { granblue_id: excluded })
|
.where(characters: { granblue_id: excluded })
|
||||||
.where('grid_characters.party_id = parties.id')
|
.where('grid_characters.party_id = parties.id')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Generates subquery for excluded summons
|
||||||
|
# @return [ActiveRecord::Relation, nil] exclusion query
|
||||||
def excluded_summons
|
def excluded_summons
|
||||||
return unless params[:excludes]
|
return unless params[:excludes]
|
||||||
|
|
||||||
excluded = params[:excludes].split(',').filter { |id| id[0] == '2' }
|
excluded = params[:excludes].split(',').filter { |id| id[0] == '2' }
|
||||||
GridSummon.joins(:object)
|
GridSummon.includes(:object)
|
||||||
.where(summons: { granblue_id: excluded })
|
.where(summons: { granblue_id: excluded })
|
||||||
.where('grid_summons.party_id = parties.id')
|
.where('grid_summons.party_id = parties.id')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Generates subquery for excluded weapons
|
||||||
|
# @return [ActiveRecord::Relation, nil] exclusion query
|
||||||
def excluded_weapons
|
def excluded_weapons
|
||||||
return unless params[:excludes]
|
return unless params[:excludes]
|
||||||
|
|
||||||
excluded = params[:excludes].split(',').filter { |id| id[0] == '1' }
|
excluded = params[:excludes].split(',').filter { |id| id[0] == '1' }
|
||||||
GridWeapon.joins(:object)
|
GridWeapon.includes(:object)
|
||||||
.where(weapons: { granblue_id: excluded })
|
.where(weapons: { granblue_id: excluded })
|
||||||
.where('grid_weapons.party_id = parties.id')
|
.where('grid_weapons.party_id = parties.id')
|
||||||
end
|
end
|
||||||
|
|
@ -403,7 +407,8 @@ module Api
|
||||||
# @param query [ActiveRecord::Relation] current query
|
# @param query [ActiveRecord::Relation] current query
|
||||||
# @return [Integer] total count
|
# @return [Integer] total count
|
||||||
def calculate_count(query)
|
def calculate_count(query)
|
||||||
query.count.values.sum
|
# query.count.values.sum
|
||||||
|
query.count
|
||||||
end
|
end
|
||||||
|
|
||||||
# Calculates total pages for pagination
|
# Calculates total pages for pagination
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue