Class: ProductTaxonomy::Serializers::Disclosure::Dist::JsonSerializer

Inherits:
Object
  • Object
show all
Defined in:
lib/product_taxonomy/models/serializers/disclosure/dist/json_serializer.rb

Class Method Summary collapse

Class Method Details

.serialize(disclosure, locale: "en") ⇒ Hash

Disclosures form a shallow hierarchy. Records are serialized as a flat list; hierarchy is expressed via parent_public_id (matching how categories express hierarchy via parent_id). Grouping/root nodes carry nil for leaf-only fields.

Parameters:

  • disclosure (Disclosure)
  • locale (String) (defaults to: "en")

    The locale to use for localized disclosures.

Returns:

  • (Hash)


27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/product_taxonomy/models/serializers/disclosure/dist/json_serializer.rb', line 27

def serialize(disclosure, locale: "en")
  {
    "id" => disclosure.gid,
    "public_id" => disclosure.public_id,
    "parent_public_id" => disclosure.parent_public_id,
    "name" => disclosure.name(locale:),
    "internal_label" => disclosure.internal_label,
    "description" => disclosure.description(locale:),
    "jurisdictions" => disclosure.jurisdictions,
    "legal_citation" => disclosure.legal_citation,
    "title" => disclosure.title(locale:),
    "content" => disclosure.content(locale:),
    "source" => disclosure.source,
    "symbol" => disclosure.symbol,
    "display_requirements" => disclosure.display_requirements,
    "display_preferences" => disclosure.display_preferences,
    "disclosure_attributes" => disclosure.disclosure_attributes,
    "disclosure_attribute_values" => disclosure.disclosure_attribute_values,
  }
end

.serialize_all(version:, locale: "en") ⇒ Hash

Returns A hash containing the serialized disclosure data.

Parameters:

  • version (String)

    The version to include in the output

  • locale (String) (defaults to: "en")

    The locale to use for localized disclosures

Returns:

  • (Hash)

    A hash containing the serialized disclosure data



12
13
14
15
16
17
# File 'lib/product_taxonomy/models/serializers/disclosure/dist/json_serializer.rb', line 12

def serialize_all(version:, locale: "en")
  {
    "version" => version,
    "disclosures" => ProductTaxonomy::Disclosure.all.map { serialize(_1, locale:) },
  }
end