Class: Edi::Amazon::JsonListingGenerator::Attributes::RegulatoryComplianceCertification

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

Overview

Service object: regulatory compliance certification.

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



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'app/services/edi/amazon/json_listing_generator/attributes/regulatory_compliance_certification.rb', line 5

def build
  results = []
  if marketplace_country_iso == 'CA'
    results << build_ised_certification_reg_no
    results << build_ised_hvin
    results << build_ul_certification_no_ca
  elsif marketplace_country_iso == 'US'
    results << build_ul_certification_no
    results << build_tuv_certificate_no
    results << build_intertek_certificate_no
  end
  results.compact.presence
end

#build_intertek_certificate_noObject



53
54
55
56
# File 'app/services/edi/amazon/json_listing_generator/attributes/regulatory_compliance_certification.rb', line 53

def build_intertek_certificate_no
  # future, i would refrain from putting this here since it can exposes
  # our manufacturer, tread carefully
end

#build_ised_certification_reg_noObject



58
59
60
61
62
63
64
65
66
67
68
69
# File 'app/services/edi/amazon/json_listing_generator/attributes/regulatory_compliance_certification.rb', line 58

def build_ised_certification_reg_no
  value = nil
  item.get_self_and_kit_items.each do |i|
    value ||= i.spec_output(:ic_certification_number)
  end
  return if value.blank?

  {
    regulation_type: 'ised_certification_reg_no',
    value: value
  }
end

#build_ised_hvinObject



71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'app/services/edi/amazon/json_listing_generator/attributes/regulatory_compliance_certification.rb', line 71

def build_ised_hvin
  value = nil
  # If we don't have it in the spec, dig in every item regardless of spec
  item.get_self_and_kit_items.each do |i|
    value ||= i.spec_output(:hardware_version_identification_number_hvin)
  end
  return if value.blank?

  {
    regulation_type: 'ised_hvin',
    value: value
  }
end

#build_tuv_certificate_noObject



40
41
42
43
44
45
46
47
48
49
50
51
# File 'app/services/edi/amazon/json_listing_generator/attributes/regulatory_compliance_certification.rb', line 40

def build_tuv_certificate_no
  value = nil
  item.get_self_and_kit_items.each do |i|
    value ||= i.spec_output(:tuv_listing_number)
  end
  return if value.blank?

  {
    regulation_type: 'tuv_certificate_no',
    value: value
  }
end

#build_ul_certification_noObject



19
20
21
22
23
24
25
26
27
28
# File 'app/services/edi/amazon/json_listing_generator/attributes/regulatory_compliance_certification.rb', line 19

def build_ul_certification_no
  value = ul_listing_number_value
  return if value.blank?

  # yes amazon has a typo in their schema, they spelled certification wrong
  {
    regulation_type: 'ul_cetrification_no',
    value: value
  }
end

#build_ul_certification_no_caObject



30
31
32
33
34
35
36
37
38
# File 'app/services/edi/amazon/json_listing_generator/attributes/regulatory_compliance_certification.rb', line 30

def build_ul_certification_no_ca
  value = ul_listing_number_value
  return if value.blank?

  {
    regulation_type: 'underwriters_laboratories',
    value: value
  }
end