module Airbnb::Service::Hongbao::Api::HongbaoCouponDataResponseSmartclientModule::GenerateClassMethods

Attributes

non_null_checking_off[RW]
type_checking_off[RW]

Class level accessors to turn on/off specific checking

Public Instance Methods

build(params = {}) click to toggle source
# File lib/airbnb/service/hongbao/api/hongbao_data_smartclient_modules.rb, line 930
def build(params = {})
  _internal_object = ::Airbnb::Service::Hongbao::Api::HongbaoCouponDataResponse.send(:new)
  return _internal_object if params.nil?
  raise TypeError.new("Expect a Hash for params in initialize, while it is #{params.class}") unless params.is_a?(Hash)
  return _internal_object if params.empty?

  code = get_field_data(params, :code, :code, _internal_object.code)
  _internal_object.code = code
  currency = get_field_data(params, :currency, :currency, _internal_object.currency)
  _internal_object.currency = currency
  expires_after = get_field_data(params, :expires_after, :expiresAfter, _internal_object.expiresAfter)
  _internal_object.expiresAfter = expires_after
  formatted_localized_amount = get_field_data(params, :formatted_localized_amount, :formattedLocalizedAmount, _internal_object.formattedLocalizedAmount)
  _internal_object.formattedLocalizedAmount = formatted_localized_amount
  formatted_localized_min_trip_cost = get_field_data(params, :formatted_localized_min_trip_cost, :formattedLocalizedMinTripCost, _internal_object.formattedLocalizedMinTripCost)
  _internal_object.formattedLocalizedMinTripCost = formatted_localized_min_trip_cost
  max_savings_usd = get_field_data(params, :max_savings_usd, :maxSavingsUsd, _internal_object.maxSavingsUsd)
  _internal_object.maxSavingsUsd = max_savings_usd
  min_trip_cost = get_field_data(params, :min_trip_cost, :minTripCost, _internal_object.minTripCost)
  _internal_object.minTripCost = min_trip_cost
  savings_amount = get_field_data(params, :savings_amount, :savingsAmount, _internal_object.savingsAmount)
  _internal_object.savingsAmount = savings_amount
  savings_percent = get_field_data(params, :savings_percent, :savingsPercent, _internal_object.savingsPercent)
  _internal_object.savingsPercent = savings_percent
  is_active = get_field_data(params, :is_active, :isActive, _internal_object.isActive)
  _internal_object.isActive = is_active
  id = get_field_data(params, :id, :id, _internal_object.id)
  _internal_object.id = id
  _internal_object.validate(Sparsam::STRICT) unless ::Airbnb::Service::Hongbao::Api::HongbaoCouponDataResponse.type_checking_off
  return _internal_object
end

Private Instance Methods

get_field_data(params, field_snake_case_symbol, field_camel_case_symbol, default) click to toggle source
# File lib/airbnb/service/hongbao/api/hongbao_data_smartclient_modules.rb, line 964
def get_field_data(params, field_snake_case_symbol, field_camel_case_symbol, default)
  return params[field_snake_case_symbol] unless params[field_snake_case_symbol].nil? # recommend use case
  return params[field_camel_case_symbol.to_s] unless params[field_camel_case_symbol.to_s].nil? # used by response from thrawn
  return params[field_snake_case_symbol.to_s] unless params[field_snake_case_symbol.to_s].nil?
  return params[field_camel_case_symbol] unless params[field_camel_case_symbol].nil?
  return params[field_camel_case_symbol] unless params[field_camel_case_symbol].nil?
  _json_override_name = const_get(:JSON_NAME_OVERRIDES)[field_camel_case_symbol] || const_get(:JSON_NAME_OVERRIDES)[field_snake_case_symbol]
  return params[_json_override_name] if params.key?(_json_override_name)
  return default
end
non_null_validator(field_name, field) click to toggle source
# File lib/airbnb/service/hongbao/api/hongbao_data_smartclient_modules.rb, line 975
def non_null_validator(field_name, field)
  raise "#{field_name} should not be nil!" if field.nil?
end