module FreckleIO::Validator::ProjectGroup

Public Class Methods

validation(params, valid_keys) click to toggle source

rubocop:disable Metrics/MethodLength, rubocop:disable Metrics/AbcSize,

# File lib/freckle_io/validator/project_group.rb, line 6
def self.validation(params, valid_keys)
  Dry::Validation.Schema do
    configure do
      config.messages_file = File.join(
        __dir__, "validation.yml"
      )
      config.namespace = :project_group

      predicates(RestrictedHash)

      option :allowed_keys
    end

    restricted_hash?(allowed_keys) do
      optional(:name).filled :str?
      optional(:project_ids).filled :str?
      optional(:per_page).filled :int?
    end
  end.with(allowed_keys: valid_keys).call(params)
end