Class: WalmartApIs::CompetitivePricingType

Inherits:
BaseModel
  • Object
show all
Defined in:
lib/walmart_ap_is/models/competitive_pricing_type.rb

Overview

Competitive pricing information for the item.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseModel

#check_for_conflict, #process_additional_properties, #process_array, #process_basic_value, #process_hash, #to_hash, #to_json

Constructor Details

#initialize(competitive_prices:, number_of_offer_listings:, trade_in_value: SKIP, additional_properties: nil) ⇒ CompetitivePricingType

Returns a new instance of CompetitivePricingType.



45
46
47
48
49
50
51
52
53
54
# File 'lib/walmart_ap_is/models/competitive_pricing_type.rb', line 45

def initialize(competitive_prices:, number_of_offer_listings:,
               trade_in_value: SKIP, additional_properties: nil)
  # Add additional model properties to the instance
  additional_properties = {} if additional_properties.nil?

  @competitive_prices = competitive_prices
  @number_of_offer_listings = number_of_offer_listings
  @trade_in_value = trade_in_value unless trade_in_value == SKIP
  @additional_properties = additional_properties
end

Instance Attribute Details

#competitive_pricesArray[CompetitivePriceType]

A list of competitive pricing information.

Returns:



14
15
16
# File 'lib/walmart_ap_is/models/competitive_pricing_type.rb', line 14

def competitive_prices
  @competitive_prices
end

#number_of_offer_listingsArray[OfferListingCountType]

The number of active offer listings for the item, by condition.

Returns:



18
19
20
# File 'lib/walmart_ap_is/models/competitive_pricing_type.rb', line 18

def number_of_offer_listings
  @number_of_offer_listings
end

#trade_in_valueMoneyType

Currency type and monetary value.

Returns:



22
23
24
# File 'lib/walmart_ap_is/models/competitive_pricing_type.rb', line 22

def trade_in_value
  @trade_in_value
end

Class Method Details

.from_hash(hash) ⇒ Object

Creates an instance of the object from a hash.



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'lib/walmart_ap_is/models/competitive_pricing_type.rb', line 57

def self.from_hash(hash)
  return nil unless hash

  # Extract variables from the hash.
  # Parameter is an array, so we need to iterate through it
  competitive_prices = nil
  unless hash['CompetitivePrices'].nil?
    competitive_prices = []
    hash['CompetitivePrices'].each do |structure|
      competitive_prices << (CompetitivePriceType.from_hash(structure) if structure)
    end
  end

  competitive_prices = nil unless hash.key?('CompetitivePrices')
  # Parameter is an array, so we need to iterate through it
  number_of_offer_listings = nil
  unless hash['NumberOfOfferListings'].nil?
    number_of_offer_listings = []
    hash['NumberOfOfferListings'].each do |structure|
      number_of_offer_listings << (OfferListingCountType.from_hash(structure) if structure)
    end
  end

  number_of_offer_listings = nil unless hash.key?('NumberOfOfferListings')
  trade_in_value = MoneyType.from_hash(hash['TradeInValue']) if hash['TradeInValue']

  # Create a new hash for additional properties, removing known properties.
  new_hash = hash.reject { |k, _| names.value?(k) }

  additional_properties = APIHelper.get_additional_properties(
    new_hash, proc { |value| value }
  )

  # Create object from extracted values.
  CompetitivePricingType.new(competitive_prices: competitive_prices,
                             number_of_offer_listings: number_of_offer_listings,
                             trade_in_value: trade_in_value,
                             additional_properties: additional_properties)
end

.namesObject

A mapping from model property names to API property names.



25
26
27
28
29
30
31
# File 'lib/walmart_ap_is/models/competitive_pricing_type.rb', line 25

def self.names
  @_hash = {} if @_hash.nil?
  @_hash['competitive_prices'] = 'CompetitivePrices'
  @_hash['number_of_offer_listings'] = 'NumberOfOfferListings'
  @_hash['trade_in_value'] = 'TradeInValue'
  @_hash
end

.nullablesObject

An array for nullable fields



41
42
43
# File 'lib/walmart_ap_is/models/competitive_pricing_type.rb', line 41

def self.nullables
  []
end

.optionalsObject

An array for optional fields



34
35
36
37
38
# File 'lib/walmart_ap_is/models/competitive_pricing_type.rb', line 34

def self.optionals
  %w[
    trade_in_value
  ]
end

Instance Method Details

#inspectObject

Provides a debugging-friendly string with detailed object information.



106
107
108
109
110
111
# File 'lib/walmart_ap_is/models/competitive_pricing_type.rb', line 106

def inspect
  class_name = self.class.name.split('::').last
  "<#{class_name} competitive_prices: #{@competitive_prices.inspect},"\
  " number_of_offer_listings: #{@number_of_offer_listings.inspect}, trade_in_value:"\
  " #{@trade_in_value.inspect}, additional_properties: #{@additional_properties}>"
end

#to_sObject

Provides a human-readable string representation of the object.



98
99
100
101
102
103
# File 'lib/walmart_ap_is/models/competitive_pricing_type.rb', line 98

def to_s
  class_name = self.class.name.split('::').last
  "<#{class_name} competitive_prices: #{@competitive_prices}, number_of_offer_listings:"\
  " #{@number_of_offer_listings}, trade_in_value: #{@trade_in_value}, additional_properties:"\
  " #{@additional_properties}>"
end