Class: Spree::Api::V3::BaseSerializer
- Inherits:
-
Object
- Object
- Spree::Api::V3::BaseSerializer
- Includes:
- Alba::Resource, Typelizer::DSL
- Defined in:
- app/serializers/spree/api/v3/base_serializer.rb
Direct Known Subclasses
AddressSerializer, Admin::AdjustmentSerializer, Admin::AdminUserSerializer, Admin::AllowedOriginSerializer, Admin::ShippingCategorySerializer, Admin::TaxCategorySerializer, AssetSerializer, CartSerializer, CategorySerializer, CreditCardSerializer, CustomFieldSerializer, CustomerReturnSerializer, CustomerSerializer, DeliveryMethodSerializer, DeliveryRateSerializer, DigitalLinkSerializer, DigitalSerializer, DiscountSerializer, ExportSerializer, FulfillmentSerializer, GiftCardBatchSerializer, GiftCardSerializer, ImportRowSerializer, ImportSerializer, InvitationSerializer, LineItemSerializer, MarketSerializer, MediaSerializer, NewsletterSubscriberSerializer, OptionTypeSerializer, OptionValueSerializer, OrderSerializer, PaymentMethodSerializer, PaymentSerializer, PaymentSessionSerializer, PaymentSetupSessionSerializer, PaymentSourceSerializer, PolicySerializer, PriceHistorySerializer, PriceSerializer, ProductSerializer, PromotionSerializer, RefundSerializer, ReimbursementSerializer, ReportSerializer, ReturnAuthorizationSerializer, ReturnItemSerializer, ShippingCategorySerializer, StockItemSerializer, StockLocationSerializer, StockMovementSerializer, StockTransferSerializer, StoreCreditSerializer, TaxCategorySerializer, VariantSerializer, WishlistItemSerializer, WishlistSerializer
Instance Method Summary collapse
- #current_currency ⇒ Object
- #current_locale ⇒ Object
-
#current_store ⇒ Object
Context accessors.
- #current_user ⇒ Object
-
#expand?(name) ⇒ Boolean
Check if an association should be expanded Supports dot notation: expand?(‘variants’) matches both ‘variants’ and ‘variants.media’.
- #expands ⇒ Object
-
#nested_expands_for(parent) ⇒ Object
Get nested expands for a given parent.
-
#nested_params(parent) ⇒ Object
Build nested params for child serializers with depth limit (max 4 levels).
Instance Method Details
#current_currency ⇒ Object
24 25 26 |
# File 'app/serializers/spree/api/v3/base_serializer.rb', line 24 def current_currency params[:currency] end |
#current_locale ⇒ Object
32 33 34 |
# File 'app/serializers/spree/api/v3/base_serializer.rb', line 32 def current_locale params[:locale] end |
#current_store ⇒ Object
Context accessors
20 21 22 |
# File 'app/serializers/spree/api/v3/base_serializer.rb', line 20 def current_store params[:store] end |
#current_user ⇒ Object
28 29 30 |
# File 'app/serializers/spree/api/v3/base_serializer.rb', line 28 def current_user params[:user] end |
#expand?(name) ⇒ Boolean
Check if an association should be expanded Supports dot notation: expand?(‘variants’) matches both ‘variants’ and ‘variants.media’
42 43 44 45 |
# File 'app/serializers/spree/api/v3/base_serializer.rb', line 42 def (name) name = name.to_s .any? { |e| e == name || e.start_with?("#{name}.") } end |
#expands ⇒ Object
36 37 38 |
# File 'app/serializers/spree/api/v3/base_serializer.rb', line 36 def @expands ||= Array(params[:expand] || []) end |
#nested_expands_for(parent) ⇒ Object
Get nested expands for a given parent
48 49 50 51 |
# File 'app/serializers/spree/api/v3/base_serializer.rb', line 48 def (parent) prefix = "#{parent}." .select { |i| i.start_with?(prefix) }.map { |i| i.sub(prefix, '') } end |
#nested_params(parent) ⇒ Object
Build nested params for child serializers with depth limit (max 4 levels)
54 55 56 57 58 |
# File 'app/serializers/spree/api/v3/base_serializer.rb', line 54 def nested_params(parent) depth = params.fetch(:_expand_depth, 0) nested = depth < 4 ? (parent) : [] params.merge(expand: nested, _expand_depth: depth + 1) end |