lib/patch_ruby/models/estimate.rb in patch_ruby-1.9.0 vs lib/patch_ruby/models/estimate.rb in patch_ruby-1.10.0

- old
+ new

@@ -4,15 +4,16 @@ #The core API used to integrate with Patch's service The version of the OpenAPI document: v1 Contact: developers@usepatch.com Generated by: https://openapi-generator.tech -OpenAPI Generator version: 4.3.1 +OpenAPI Generator version: 5.2.1 =end require 'date' +require 'time' module Patch class Estimate # A unique uid for the record. UIDs will be prepended by est_prod or est_test depending on the mode it was created in. attr_accessor :id @@ -38,10 +39,15 @@ :'mass_g' => :'mass_g', :'order' => :'order' } end + # Returns all the JSON keys this model knows about + def self.acceptable_attributes + attribute_map.values + end + # Attribute type mapping. def self.openapi_types { :'id' => :'String', :'production' => :'Boolean', @@ -49,19 +55,18 @@ :'mass_g' => :'Integer', :'order' => :'Order' } end - # Set with nullable attributes. + # List of attributes with nullable: true def self.openapi_nullable - nullable_properties = Set.new - - nullable_properties.add("order") - - nullable_properties + Set.new([ + :'order' + ]) end + # Allows models with corresponding API classes to delegate API operations to those API classes # Exposes Model.operation_id which delegates to ModelsApi.new.operation_id # Eg. Order.create_order delegates to OrdersApi.new.create_order def self.method_missing(message, *args, &block) if Object.const_defined?('Patch::EstimatesApi::OPERATIONS') && Patch::EstimatesApi::OPERATIONS.include?(message) @@ -170,19 +175,21 @@ # @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 type =~ /\AArray<(.*)>/i + if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key) + self.send("#{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) }) end elsif !attributes[self.class.attribute_map[key]].nil? self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]])) - end # or else data not found in attributes(hash), not an issue as the data can be optional + end end self end @@ -190,12 +197,12 @@ # @param string type Data type # @param string value Value to be deserialized # @return [Object] Deserialized data def _deserialize(type, value) case type.to_sym - when :DateTime - DateTime.parse(value) + when :Time + Time.parse(value) when :Date Date.parse(value) when :String value.to_s when :Integer @@ -221,11 +228,13 @@ value.each do |k, v| hash[_deserialize(k_type, k)] = _deserialize(v_type, v) end end else # model - Patch.const_get(type).build_from_hash(value) + # models (e.g. Pet) or oneOf + klass = Patch.const_get(type) + 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 @@ -247,10 +256,10 @@ value = self.send(attr) if value.nil? is_nullable = self.class.openapi_nullable.include?(attr) next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) end - + hash[param] = _to_hash(value) end hash end