expose extra_prerequisite and forge chain in weapon api

This commit is contained in:
Justin Edmund 2025-12-21 22:14:41 -08:00
parent 85d9060dc9
commit 65ad500550
2 changed files with 38 additions and 4 deletions

View file

@ -13,7 +13,7 @@ module Api
# Primary information
fields :granblue_id, :element, :proficiency,
:max_level, :max_skill_level, :max_awakening_level, :limit, :rarity,
:ax, :ax_type, :gacha, :promotions
:ax, :ax_type, :gacha, :promotions, :forge_order
# Series - returns full object with flags if weapon_series is present, fallback to legacy integer
field :series do |w|
@ -46,7 +46,8 @@ module Api
{
flb: w.flb,
ulb: w.ulb,
transcendence: w.transcendence
transcendence: w.transcendence,
extra_prerequisite: w.extra_prerequisite
}
end
@ -115,6 +116,39 @@ module Api
}
}
end
# Forge chain fields
field :forged_from do |w|
next nil unless w.forged_from.present?
parent = w.forged_from_weapon
next nil unless parent
{
id: parent.id,
granblue_id: parent.granblue_id,
name: {
en: parent.name_en,
ja: parent.name_jp
}
}
end
field :forge_chain do |w|
next nil unless w.forge_chain_id.present?
w.forge_chain.map do |weapon|
{
id: weapon.id,
granblue_id: weapon.granblue_id,
name: {
en: weapon.name_en,
ja: weapon.name_jp
},
forge_order: weapon.forge_order
}
end
end
end
# Separate view for raw data - only used by dedicated endpoint

View file

@ -216,13 +216,13 @@ module Api
def weapon_params
params.require(:weapon).permit(
:granblue_id, :name_en, :name_jp, :rarity, :element, :proficiency, :series, :new_series,
:flb, :ulb, :transcendence, :extra, :limit, :ax, :gacha,
:flb, :ulb, :transcendence, :extra, :extra_prerequisite, :limit, :ax, :gacha,
:min_hp, :max_hp, :max_hp_flb, :max_hp_ulb,
:min_atk, :max_atk, :max_atk_flb, :max_atk_ulb,
:max_level, :max_skill_level, :max_awakening_level,
:release_date, :flb_date, :ulb_date, :transcendence_date,
:wiki_en, :wiki_ja, :wiki_raw, :gamewith, :kamigame,
:recruits,
:recruits, :forged_from, :forge_chain_id, :forge_order,
nicknames_en: [], nicknames_jp: [], promotions: []
)
end