module FreckleIO::Validator::Entry
Public Class Methods
validation(params, valid_keys)
click to toggle source
rubocop:disable Metrics/MethodLength, rubocop:disable Metrics/AbcSize, rubocop:disable Lint/NestedMethodDefinition rubocop:disable Metrics/BlockLength,
# File lib/freckle_io/validator/entry.rb, line 8 def self.validation(params, valid_keys) Dry::Validation.Schema do configure do config.messages_file = File.join( __dir__, "validation.yml" ) config.namespace = :entry predicates(RestrictedHash) option :allowed_keys def valid_tag_filter_type ["and", "combination of"] end end restricted_hash?(allowed_keys) do optional(:user_ids).filled :str? optional(:description).filled :str? optional(:project_ids).filled :str? optional(:tag_ids).filled :str? optional(:tag_filter_type).filled :str? optional( :tag_filter_type ).value(included_in?: valid_tag_filter_type) optional(:invoice_ids).filled :str? optional(:import_ids).filled :str? optional(:from).filled :str? optional(:to).filled :str? optional(:invoiced).filled :bool? optional(:invoiced_at_from).filled :str? optional(:invoiced_at_to).filled :str? optional(:updated_from).filled :str? optional(:updated_to).filled :str? optional(:billable).filled :bool? optional(:approved_at_from).filled :str? optional(:approved_at_to).filled :str? optional(:approved_by_ids).filled :str? optional(:per_page).filled :int? end end.with(allowed_keys: valid_keys).call(params) end
Public Instance Methods
valid_tag_filter_type()
click to toggle source
# File lib/freckle_io/validator/entry.rb, line 20 def valid_tag_filter_type ["and", "combination of"] end