class GameValidator::Validator

Public Instance Methods

call(action_hash:, user:) click to toggle source
# File lib/game_validator/validator.rb, line 14
def call(action_hash:, user:)
  a = action_hash.dup
  a[:user] = user
  result = validate_player_action_and_user.(a)
  return build_failure.(errors: result.errors) if result.failure?
  validate = full_validator_for[[a[:player_action], a[:user].admin?]]
  result = validate.(action_hash)
  return build_failure.(errors: result.errors) if result.failure?
  result
end