diff --git a/app/blueprints/api/v1/weapon_blueprint.rb b/app/blueprints/api/v1/weapon_blueprint.rb index 2b42710..65bf06c 100644 --- a/app/blueprints/api/v1/weapon_blueprint.rb +++ b/app/blueprints/api/v1/weapon_blueprint.rb @@ -39,7 +39,7 @@ module Api } end - field :awakenings, if: ->(_field_name, w, _options) { w.awakenings } do |w| + field :awakenings, if: lambda { |_fn, obj, _opt| obj.awakenings.length.positive? } do |w| w.awakenings.map do |a| AwakeningBlueprint.render_as_hash(a) end diff --git a/app/models/grid_character.rb b/app/models/grid_character.rb index 468bea9..09d6e8d 100644 --- a/app/models/grid_character.rb +++ b/app/models/grid_character.rb @@ -23,6 +23,9 @@ class GridCharacter < ApplicationRecord set perpetuity: false end + # Add awakening before the model saves + before_save :add_awakening + def validate_awakening_level errors.add(:awakening, 'awakening level too low') if awakening_level < 1 errors.add(:awakening, 'awakening level too high') if awakening_level > 9 @@ -83,6 +86,12 @@ class GridCharacter < ApplicationRecord private + def add_awakening + if self.awakening.nil? + self.awakening = Awakening.where(slug: "character-balanced").sole + end + end + def check_value(property, type) # Input format # { ring1: { atk: 300 } }