Compare commits

...

2 commits

Author SHA1 Message Date
1064432864 Set uncap level when GridSummon is created
If you don't, then NULL entries get sent to the database from the bookmarklet.
2023-08-24 20:40:03 -07:00
a69017ff19 Fix favorites page by fixing how query is built 2023-08-21 20:42:26 -07:00
2 changed files with 28 additions and 18 deletions

View file

@ -14,6 +14,7 @@ module Api
# Create the GridSummon with the desired parameters # Create the GridSummon with the desired parameters
summon = GridSummon.new summon = GridSummon.new
summon.attributes = summon_params.merge(party_id: party.id, summon_id: incoming_summon.id) summon.attributes = summon_params.merge(party_id: party.id, summon_id: incoming_summon.id)
summon.uncap_level = max_uncap_level(summon) if summon.uncap_level.nil?
if summon.validate if summon.validate
save_summon(summon) save_summon(summon)
@ -32,15 +33,7 @@ module Api
def update_uncap_level def update_uncap_level
summon = @summon.summon summon = @summon.summon
max_uncap_level = if summon.flb && !summon.ulb && !summon.xlb max_uncap_level = max_uncap_level(summon)
4
elsif summon.ulb && !summon.xlb
5
elsif summon.xlb
6
else
3
end
greater_than_max_uncap = summon_params[:uncap_level].to_i > max_uncap_level greater_than_max_uncap = summon_params[:uncap_level].to_i > max_uncap_level
can_be_transcended = summon.xlb && summon_params[:transcendence_step] && summon_params[:transcendence_step]&.to_i&.positive? can_be_transcended = summon.xlb && summon_params[:transcendence_step] && summon_params[:transcendence_step]&.to_i&.positive?
@ -120,6 +113,19 @@ module Api
private private
def max_uncap_level(summon)
object = summon.summon
if object.flb && !object.ulb && !object.xlb
4
elsif object.ulb && !object.xlb
5
elsif object.xlb
6
else
3
end
end
def find_incoming_summon def find_incoming_summon
@incoming_summon = Summon.find_by(id: summon_params[:summon_id]) @incoming_summon = Summon.find_by(id: summon_params[:summon_id])
end end

View file

@ -90,7 +90,7 @@ module Api
conditions = build_filters conditions = build_filters
conditions[:favorites] = { user_id: current_user.id } 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_includes(query, params[:includes]) if params[:includes].present?
query = apply_excludes(query, params[:excludes]) if params[:excludes].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 value.to_i unless value.blank? || value.to_i == -1
end end
def build_query(conditions) def build_query(conditions, favorites = false)
Party.distinct query = Party.distinct
.joins(weapons: [:object], summons: [:object], characters: [:object]) .joins(weapons: [:object], summons: [:object], characters: [:object])
.group('parties.id') .group('parties.id')
.where(conditions) .where(conditions)
.where(name_quality) .where(name_quality)
.where(user_quality) .where(user_quality)
.where(original) .where(original)
query = query.joins(:favorites) if favorites
query
end end
def includes(id) def includes(id)