108 lines
2.2 KiB
Ruby
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
|