add nicknames, links to entity blueprints; recruits returns character info

This commit is contained in:
Justin Edmund 2025-12-02 02:14:52 -08:00
parent f5760b1833
commit 6254bfde6f
3 changed files with 116 additions and 0 deletions

View file

@ -38,6 +38,39 @@ module Api
AwakeningBlueprint.render_as_hash(OpenStruct.new(awakening))
end
end
field :nicknames do |c|
{
en: c.nicknames_en,
ja: c.nicknames_jp
}
end
field :links do |c|
{
wiki_en: c.wiki_en,
wiki_ja: c.wiki_ja,
gamewith: c.gamewith,
kamigame: c.kamigame
}
end
end
# Separate view for raw data - only used by dedicated endpoint
view :raw do
excludes :name, :granblue_id, :character_id, :rarity, :element, :gender, :special, :uncap, :race, :proficiency
field :wiki_raw do |c|
c.wiki_raw
end
field :game_raw_en do |c|
c.game_raw_en
end
field :game_raw_jp do |c|
c.game_raw_jp
end
end
view :stats do

View file

@ -52,6 +52,39 @@ module Api
view :full do
include_view :stats
include_view :dates
field :nicknames do |s|
{
en: s.nicknames_en,
ja: s.nicknames_jp
}
end
field :links do |s|
{
wiki_en: s.wiki_en,
wiki_ja: s.wiki_ja,
gamewith: s.gamewith,
kamigame: s.kamigame
}
end
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

View file

@ -57,6 +57,56 @@ module Api
association :awakenings,
blueprint: AwakeningBlueprint,
if: ->(_field_name, weapon, _options) { weapon.awakenings.any? }
field :nicknames do |w|
{
en: w.nicknames_en,
ja: w.nicknames_jp
}
end
field :links do |w|
{
wiki_en: w.wiki_en,
wiki_ja: w.wiki_ja,
gamewith: w.gamewith,
kamigame: w.kamigame
}
end
field :recruits do |w|
next nil unless w.recruits.present?
character = Character.find_by(granblue_id: w.recruits)
next nil unless character
{
id: character.id,
granblue_id: character.granblue_id,
name: {
en: character.name_en,
ja: character.name_jp
}
}
end
end
# Separate view for raw data - only used by dedicated endpoint
view :raw do
excludes :name, :granblue_id, :element, :proficiency, :max_level, :max_skill_level,
:max_awakening_level, :limit, :rarity, :series, :ax, :ax_type, :uncap
field :wiki_raw do |w|
w.wiki_raw
end
field :game_raw_en do |w|
w.game_raw_en
end
field :game_raw_jp do |w|
w.game_raw_jp
end
end
end
end