Sha256: c63f4f7d61929fc67c7dee7e6b7ac9d65e3051b5d3f760e8025eb8d5757b9db4

Contents?: true

Size: 644 Bytes

Versions: 3

Compression:

Stored size: 644 Bytes

Contents

# frozen string literal: true

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

module SpyAlleyApplication
  module Validator
    class ChooseNewSpyIdentity < Dry::Validation::Contract
      option :options, type: ::Types::Array::of(SpyAlleyApplication::Types::Nationality)
        .constrained(size: 2)

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

      rule(:nationality) do
        if !options.include?(values[:nationality])
          key.failure({text: "'#{values[:nationality]}' 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/choose_new_spy_identity.rb
spy_alley_application-0.3.1 lib/spy_alley_application/validator/choose_new_spy_identity.rb
spy_alley_application-0.3.0 lib/spy_alley_application/validator/choose_new_spy_identity.rb