module FreckleIO::Validator::User
Public Class Methods
validation(params, valid_keys)
click to toggle source
rubocop:disable Metrics/MethodLength, rubocop:disable Metrics/AbcSize, rubocop:disable Lint/NestedMethodDefinition
# File lib/freckle_io/validator/user.rb, line 7 def self.validation(params, valid_keys) Dry::Validation.Schema do configure do config.messages_file = File.join( __dir__, "validation.yml" ) config.namespace = :user predicates(RestrictedHash) option :allowed_keys def valid_roles %w(supervisor leader coworker contractor) end def valid_states %w(disabled pending active suspended) end end restricted_hash?(allowed_keys) do optional(:name).filled :str? optional(:email).filled :str? optional(:email).value(format?: /\A[^@\s]+@[^@\s]+\z/) optional(:role).value(included_in?: valid_roles) optional(:state).value(included_in?: valid_states) optional(:per_page).filled :int? end end.with(allowed_keys: valid_keys).call(params) end
Public Instance Methods
valid_roles()
click to toggle source
# File lib/freckle_io/validator/user.rb, line 19 def valid_roles %w(supervisor leader coworker contractor) end
valid_states()
click to toggle source
# File lib/freckle_io/validator/user.rb, line 23 def valid_states %w(disabled pending active suspended) end