lib/svix/models/template_patch.rb in svix-1.38.0 vs lib/svix/models/template_patch.rb in svix-1.39.0

- old
+ new

@@ -4,11 +4,11 @@ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) The version of the OpenAPI document: 1.1.1 Generated by: https://openapi-generator.tech -OpenAPI Generator version: 5.2.0 +Generator version: 7.9.0 =end require 'date' require 'time' @@ -31,10 +31,32 @@ attr_accessor :name attr_accessor :transformation + class EnumAttributeValidator + attr_reader :datatype + attr_reader :allowable_values + + def initialize(datatype, allowable_values) + @allowable_values = allowable_values.map do |value| + case datatype.to_s + when /Integer/i + value.to_i + when /Float/i + value.to_f + else + value + end + end + end + + def valid?(value) + !value || allowable_values.include?(value) + end + end + # Attribute mapping from ruby-style variable name to JSON key. def self.attribute_map { :'description' => :'description', :'feature_flag' => :'featureFlag', @@ -132,10 +154,11 @@ end # Show invalid properties with the reasons. Usually used together with valid? # @return Array for valid properties with the reasons def list_invalid_properties + warn '[DEPRECATED] the `list_invalid_properties` method is obsolete' invalid_properties = Array.new if !@feature_flag.nil? && @feature_flag.to_s.length > 256 invalid_properties.push('invalid value for "feature_flag", the character length must be smaller than or equal to 256.') end @@ -160,10 +183,11 @@ end # Check to see if the all the properties in the model are valid # @return true if the model is valid def valid? + warn '[DEPRECATED] the `valid?` method is obsolete' return false if !@feature_flag.nil? && @feature_flag.to_s.length > 256 return false if !@feature_flag.nil? && @feature_flag !~ Regexp.new(/^[a-zA-Z0-9\-_.]+$/) return false if !@filter_types.nil? && @filter_types.length < 1 return false if !@transformation.nil? && @transformation.to_s.length > 51200 return false if !@transformation.nil? && @transformation.to_s.length < 10 @@ -196,15 +220,19 @@ end # Custom attribute writer method with validation # @param [Object] transformation Value to be assigned def transformation=(transformation) - if !transformation.nil? && transformation.to_s.length > 51200 + if transformation.nil? + fail ArgumentError, 'transformation cannot be nil' + end + + if transformation.to_s.length > 51200 fail ArgumentError, 'invalid value for "transformation", the character length must be smaller than or equal to 51200.' end - if !transformation.nil? && transformation.to_s.length < 10 + if transformation.to_s.length < 10 fail ArgumentError, 'invalid value for "transformation", the character length must be great than or equal to 10.' end @transformation = transformation end @@ -239,40 +267,34 @@ # Builds the object from hash # @param [Hash] attributes Model attributes in the form of hash # @return [Object] Returns the model itself def self.build_from_hash(attributes) - new.build_from_hash(attributes) - end - - # Builds the object from hash - # @param [Hash] attributes Model attributes in the form of hash - # @return [Object] Returns the model itself - def build_from_hash(attributes) return nil unless attributes.is_a?(Hash) - self.class.openapi_types.each_pair do |key, type| - if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key) - self.send("#{key}=", nil) + attributes = attributes.transform_keys(&:to_sym) + transformed_hash = {} + openapi_types.each_pair do |key, type| + if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil? + transformed_hash["#{key}"] = nil elsif type =~ /\AArray<(.*)>/i # check to ensure the input is an array given that the attribute # is documented as an array but the input is not - if attributes[self.class.attribute_map[key]].is_a?(Array) - self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) }) + if attributes[attribute_map[key]].is_a?(Array) + transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) } end - elsif !attributes[self.class.attribute_map[key]].nil? - self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]])) + elsif !attributes[attribute_map[key]].nil? + transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]]) end end - - self + new(transformed_hash) end # Deserializes the data based on type # @param string type Data type # @param string value Value to be deserialized # @return [Object] Deserialized data - def _deserialize(type, value) + def self._deserialize(type, value) case type.to_sym when :Time Time.parse(value) when :Date Date.parse(value) @@ -303,10 +325,10 @@ end end else # model # models (e.g. Pet) or oneOf klass = Svix.const_get(type) - klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value) + klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value) end end # Returns the string representation of the object # @return [String] String presentation of the object