Sha256: 5b0c42b5547cfcd9e64c0f7dfcf99e88ac0b3b63c9054a48ed5a35e31a4823e8

Contents?: true

Size: 679 Bytes

Versions: 3

Compression:

Stored size: 679 Bytes

Contents

# frozen string literal: true

require 'dry-validation'
require 'spy_alley_application/types/nationality'

module SpyAlleyApplication
  module Validator
    class MakeAccusation < Dry::Validation::Contract
      option :player_id_list, type: ::Types::ArrayOfStrictInteger

      params do
        required(:target_player_id).filled(::Types::Coercible::Integer)
        required(:nationality).filled(SpyAlleyApplication::Types::Nationality)
      end

      rule(:target_player_id) do
        if !player_id_list.include?(values[:target_player_id])
          key.failure({text: "'#{values[:target_player_id]}' not allowable", status: 422})
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
spy_alley_application-0.3.2 lib/spy_alley_application/validator/make_accusation.rb
spy_alley_application-0.3.1 lib/spy_alley_application/validator/make_accusation.rb
spy_alley_application-0.3.0 lib/spy_alley_application/validator/make_accusation.rb