hensei-api/app/blueprints/api/v1/summon_blueprint.rb
Justin Edmund b91ef0a4dd standardize links format in blueprints
return wiki: {en, ja} + gamewith, kamigame at top level
2025-12-15 12:47:11 -08:00

108 lines
2.2 KiB
Ruby

# frozen_string_literal: true
module Api
module V1
class SummonBlueprint < ApiBlueprint
field :name do |s|
{
en: s.name_en,
ja: s.name_jp
}
end
fields :granblue_id, :element, :rarity, :max_level, :promotions
field :promotion_names do |s|
s.promotion_names
end
field :series do |s|
if s.summon_series.present?
{
id: s.summon_series_id,
slug: s.summon_series.slug,
name: {
en: s.summon_series.name_en,
ja: s.summon_series.name_jp
}
}
end
end
field :uncap do |s|
{
flb: s.flb,
ulb: s.ulb,
transcendence: s.transcendence
}
end
view :stats do
field :hp do |s|
{
min_hp: s.min_hp,
max_hp: s.max_hp,
max_hp_flb: s.max_hp_flb,
max_hp_ulb: s.max_hp_ulb,
max_hp_xlb: s.max_hp_xlb
}
end
field :atk do |s|
{
min_atk: s.min_atk,
max_atk: s.max_atk,
max_atk_flb: s.max_atk_flb,
max_atk_ulb: s.max_atk_ulb,
max_atk_xlb: s.max_atk_xlb
}
end
end
view :dates do
field :release_date
field :flb_date
field :ulb_date
field :transcendence_date
end
view :full do
include_view :stats
include_view :dates
field :nicknames do |s|
{
en: s.nicknames_en,
ja: s.nicknames_jp
}
end
field :wiki do |s|
{
en: s.wiki_en,
ja: s.wiki_ja
}
end
fields :gamewith, :kamigame
end
# Separate view for raw data - only used by dedicated endpoint
view :raw do
excludes :name, :granblue_id, :element, :rarity, :max_level, :uncap
field :wiki_raw do |s|
s.wiki_raw
end
field :game_raw_en do |s|
s.game_raw_en
end
field :game_raw_jp do |s|
s.game_raw_jp
end
end
end
end
end