Class: Edi::Amazon::JsonListingGenerator::Attributes::FccRadioFrequencyEmissionCompliance

Inherits:
BaseAttribute
  • Object
show all
Defined in:
app/services/edi/amazon/json_listing_generator/attributes/fcc_radio_frequency_emission_compliance.rb

Constant Summary

Constants inherited from BaseAttribute

BaseAttribute::RUBY_UNIT_TO_AMAZON_UNIT

Instance Attribute Summary

Attributes inherited from BaseAttribute

#amazon_schema, #attribute_name, #catalog_item, #enum_mapper, #fba, #item, #language_tag, #marketplace, #marketplace_country_iso, #marketplace_id, #value_attribute_name, #variation

Instance Method Summary collapse

Methods inherited from BaseAttribute

#fetch_unit, #fetch_value, #initialize, #map_unit, #value

Constructor Details

This class inherits a constructor from Edi::Amazon::JsonListingGenerator::Attributes::BaseAttribute

Instance Method Details

#buildObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'app/services/edi/amazon/json_listing_generator/attributes/fcc_radio_frequency_emission_compliance.rb', line 3

def build
  fcc_id = fetch_value(:fcc_id)
  # If we don't have it in the spec, dig in every item regardless of spec
  if fcc_id.nil?
    item.get_self_and_kit_items.each do |i|
      fcc_id = i.spec_output(:fcc_id)
      break if fcc_id
    end
  end
  fcc_registration_status = fcc_id ? 'has_fcc_id' : fetch_value(:fcc_registration_status)
  fcc_registration_status ||= 'fcc_incidental_radiator' if item.get_self_and_kit_items.any?(&:is_radiator?)
  fcc_registration_status ||= 'not_capable_emitting_rf_energy'
  return unless fcc_registration_status.present?

  result = {
    registration_status: fcc_registration_status
  }
  if fcc_registration_status == 'has_fcc_id' && fcc_id.present?
    result[:identification_number] = fcc_id
    result[:point_of_contact_name] = fetch_value(:fcc_point_of_contact_name) || fetch_value(:sdoc_contact_name)
    result[:point_of_contact_address] = fetch_value(:fcc_point_of_contact_address) || fetch_value(:sdoc_contact_us_mailing_address)
    result[:point_of_contact_email] = fetch_value(:fcc_point_of_contact_email) || fetch_value(:sdoc_contact_email_address)
    result[:point_of_contact_phone_number] = fetch_value(:fcc_point_of_contact_phone_number) || fetch_value(:sdoc_contact_us_phone_number)
  end
  result[:marketplace_id] = marketplace_id
  [result.compact]
end