Class: Dscf::Marketplace::OrderItemSerializer
- Inherits:
-
ActiveModel::Serializer
- Object
- ActiveModel::Serializer
- Dscf::Marketplace::OrderItemSerializer
- Defined in:
- app/serializers/dscf/marketplace/order_item_serializer.rb
Instance Method Summary collapse
Instance Method Details
#product_sku ⇒ Object
17 18 19 |
# File 'app/serializers/dscf/marketplace/order_item_serializer.rb', line 17 def product_sku object.product&.sku end |
#source_name ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'app/serializers/dscf/marketplace/order_item_serializer.rb', line 21 def source_name # object.source (a polymorphic belongs_to) constantizes source_type # internally and raises on anything that isn't a real class name — # guard against legacy/bad data instead of 500ing the whole response. return nil if object.source_type.present? && object.source_type.safe_constantize.nil? return nil unless object.source case object.source_type when 'Dscf::Marketplace::AggregatorListing' object.source.try(:source_label) when 'Dscf::Marketplace::SubSupplier' object.source.try(:business_name) || object.source.try(:name) when 'Dscf::Marketplace::Supplier' object.source.try(:name) when 'Dscf::Core::Business' object.source.try(:name) else object.source.try(:name) || object.source.try(:business_name) end end |