spree_api 6.0.0.beta4 → 6.0.0.rc2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Rakefile +4 -48
- data/app/controllers/concerns/spree/api/v3/admin/email_template_lookup.rb +139 -0
- data/app/controllers/concerns/spree/api/v3/admin/product_membership.rb +10 -0
- data/app/controllers/concerns/spree/api/v3/admin/stock_receipt_actions.rb +26 -4
- data/app/controllers/concerns/spree/api/v3/admin/store_context.rb +1 -1
- data/app/controllers/concerns/spree/api/v3/admin/subclassed_resource.rb +15 -29
- data/app/controllers/concerns/spree/api/v3/admin/validation_details.rb +1 -1
- data/app/controllers/concerns/spree/api/v3/cart_resolvable.rb +10 -2
- data/app/controllers/concerns/spree/api/v3/channel_resolution.rb +3 -3
- data/app/controllers/concerns/spree/api/v3/company_address_writes.rb +3 -1
- data/app/controllers/concerns/spree/api/v3/current_password_confirmation.rb +1 -1
- data/app/controllers/concerns/spree/api/v3/error_handler.rb +55 -4
- data/app/controllers/concerns/spree/api/v3/file_uploads.rb +35 -0
- data/app/controllers/concerns/spree/api/v3/http_caching.rb +44 -11
- data/app/controllers/concerns/spree/api/v3/idempotent.rb +20 -5
- data/app/controllers/concerns/spree/api/v3/items_payload.rb +1 -1
- data/app/controllers/concerns/spree/api/v3/money_params.rb +52 -0
- data/app/controllers/concerns/spree/api/v3/order_lock.rb +2 -2
- data/app/controllers/concerns/spree/api/v3/orders/claim_actions.rb +1 -5
- data/app/controllers/concerns/spree/api/v3/orders/delivery_actions.rb +7 -11
- data/app/controllers/concerns/spree/api/v3/orders/exchange_actions.rb +1 -4
- data/app/controllers/concerns/spree/api/v3/orders/fulfillment_actions.rb +3 -15
- data/app/controllers/concerns/spree/api/v3/orders/post_sale_actions.rb +2 -10
- data/app/controllers/concerns/spree/api/v3/orders/return_actions.rb +1 -4
- data/app/controllers/concerns/spree/api/v3/orders/shipping_label_actions.rb +8 -28
- data/app/controllers/concerns/spree/api/v3/params_normalizer.rb +5 -0
- data/app/controllers/concerns/spree/api/v3/permission_serialization.rb +9 -1
- data/app/controllers/concerns/spree/api/v3/purchase_serialization.rb +26 -0
- data/app/controllers/concerns/spree/api/v3/request_params.rb +65 -0
- data/app/controllers/concerns/spree/api/v3/seller/seller_context.rb +1 -1
- data/app/controllers/concerns/spree/api/v3/store/storefront_products.rb +5 -4
- data/app/controllers/concerns/spree/api/v3/storefront_gating.rb +11 -5
- data/app/controllers/concerns/spree/api/v3/strict_money_params.rb +94 -0
- data/app/controllers/spree/api/v3/admin/admin_users_controller.rb +8 -4
- data/app/controllers/spree/api/v3/admin/allowed_origins_controller.rb +8 -1
- data/app/controllers/spree/api/v3/admin/api_keys_controller.rb +16 -8
- data/app/controllers/spree/api/v3/admin/base_controller.rb +1 -0
- data/app/controllers/spree/api/v3/admin/catalogs/order_minimums_controller.rb +2 -6
- data/app/controllers/spree/api/v3/admin/catalogs/quantity_rules_controller.rb +7 -9
- data/app/controllers/spree/api/v3/admin/catalogs_controller.rb +61 -34
- data/app/controllers/spree/api/v3/admin/categories/products_controller.rb +4 -1
- data/app/controllers/spree/api/v3/admin/categories_controller.rb +40 -20
- data/app/controllers/spree/api/v3/admin/channels_controller.rb +39 -10
- data/app/controllers/spree/api/v3/admin/claim_reasons_controller.rb +5 -1
- data/app/controllers/spree/api/v3/admin/collections/products_controller.rb +5 -3
- data/app/controllers/spree/api/v3/admin/collections_controller.rb +44 -15
- data/app/controllers/spree/api/v3/admin/commission_rates_controller.rb +62 -14
- data/app/controllers/spree/api/v3/admin/companies/addresses_controller.rb +11 -4
- data/app/controllers/spree/api/v3/admin/companies/invitations_controller.rb +1 -5
- data/app/controllers/spree/api/v3/admin/companies/memberships_controller.rb +9 -5
- data/app/controllers/spree/api/v3/admin/companies/tax_exemption_certificates_controller.rb +20 -27
- data/app/controllers/spree/api/v3/admin/companies/tax_identifiers_controller.rb +6 -5
- data/app/controllers/spree/api/v3/admin/companies_controller.rb +17 -7
- data/app/controllers/spree/api/v3/admin/countries_controller.rb +6 -2
- data/app/controllers/spree/api/v3/admin/coupon_codes_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/custom_field_definitions_controller.rb +22 -4
- data/app/controllers/spree/api/v3/admin/custom_fields_controller.rb +12 -9
- data/app/controllers/spree/api/v3/admin/customer_groups_controller.rb +9 -5
- data/app/controllers/spree/api/v3/admin/customers/addresses_controller.rb +12 -11
- data/app/controllers/spree/api/v3/admin/customers/credit_cards_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/customers/store_credits_controller.rb +11 -13
- data/app/controllers/spree/api/v3/admin/customers/tax_identifiers_controller.rb +6 -1
- data/app/controllers/spree/api/v3/admin/customers_controller.rb +37 -9
- data/app/controllers/spree/api/v3/admin/data_requests_controller.rb +8 -0
- data/app/controllers/spree/api/v3/admin/delivery_method_rules_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/delivery_methods/rules_controller.rb +16 -8
- data/app/controllers/spree/api/v3/admin/delivery_methods_controller.rb +95 -62
- data/app/controllers/spree/api/v3/admin/delivery_profiles/origin_groups_controller.rb +8 -1
- data/app/controllers/spree/api/v3/admin/delivery_profiles_controller.rb +14 -7
- data/app/controllers/spree/api/v3/admin/delivery_zones_controller.rb +21 -5
- data/app/controllers/spree/api/v3/admin/email_templates/drafts_controller.rb +53 -0
- data/app/controllers/spree/api/v3/admin/email_templates/previews_controller.rb +34 -0
- data/app/controllers/spree/api/v3/admin/email_templates/publications_controller.rb +37 -0
- data/app/controllers/spree/api/v3/admin/email_templates/restorations_controller.rb +42 -0
- data/app/controllers/spree/api/v3/admin/email_templates/revisions_controller.rb +35 -0
- data/app/controllers/spree/api/v3/admin/email_templates/sample_records_controller.rb +33 -0
- data/app/controllers/spree/api/v3/admin/email_templates/test_emails_controller.rb +44 -0
- data/app/controllers/spree/api/v3/admin/email_templates_controller.rb +46 -0
- data/app/controllers/spree/api/v3/admin/exports_controller.rb +23 -6
- data/app/controllers/spree/api/v3/admin/files_controller.rb +29 -0
- data/app/controllers/spree/api/v3/admin/gift_card_batches_controller.rb +20 -1
- data/app/controllers/spree/api/v3/admin/gift_cards_controller.rb +19 -1
- data/app/controllers/spree/api/v3/admin/imports_controller.rb +37 -11
- data/app/controllers/spree/api/v3/admin/integrations_controller.rb +13 -1
- data/app/controllers/spree/api/v3/admin/invitation_acceptances_controller.rb +9 -2
- data/app/controllers/spree/api/v3/admin/invitations_controller.rb +8 -8
- data/app/controllers/spree/api/v3/admin/locales_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/markets_controller.rb +30 -9
- data/app/controllers/spree/api/v3/admin/me_controller.rb +13 -4
- data/app/controllers/spree/api/v3/admin/media_controller.rb +22 -9
- data/app/controllers/spree/api/v3/admin/media_library_controller.rb +9 -5
- data/app/controllers/spree/api/v3/admin/option_types_controller.rb +24 -7
- data/app/controllers/spree/api/v3/admin/order_cancellation_reasons_controller.rb +5 -1
- data/app/controllers/spree/api/v3/admin/order_routing_rules_controller.rb +13 -5
- data/app/controllers/spree/api/v3/admin/orders/claims_controller.rb +39 -1
- data/app/controllers/spree/api/v3/admin/orders/deliveries_controller.rb +20 -6
- data/app/controllers/spree/api/v3/admin/orders/discount_codes_controller.rb +6 -2
- data/app/controllers/spree/api/v3/admin/orders/discounts_controller.rb +30 -6
- data/app/controllers/spree/api/v3/admin/orders/exchanges_controller.rb +36 -1
- data/app/controllers/spree/api/v3/admin/orders/fees_controller.rb +22 -1
- data/app/controllers/spree/api/v3/admin/orders/fulfillments_controller.rb +83 -22
- data/app/controllers/spree/api/v3/admin/orders/gift_cards_controller.rb +9 -5
- data/app/controllers/spree/api/v3/admin/orders/items_controller.rb +11 -1
- data/app/controllers/spree/api/v3/admin/orders/labels_controller.rb +37 -12
- data/app/controllers/spree/api/v3/admin/orders/payments_controller.rb +18 -19
- data/app/controllers/spree/api/v3/admin/orders/refunds_controller.rb +7 -5
- data/app/controllers/spree/api/v3/admin/orders/returns_controller.rb +37 -1
- data/app/controllers/spree/api/v3/admin/orders/store_credits_controller.rb +6 -3
- data/app/controllers/spree/api/v3/admin/orders_controller.rb +76 -62
- data/app/controllers/spree/api/v3/admin/package_types_controller.rb +30 -5
- data/app/controllers/spree/api/v3/admin/password_resets_controller.rb +26 -7
- data/app/controllers/spree/api/v3/admin/payment_methods_controller.rb +38 -22
- data/app/controllers/spree/api/v3/admin/policies_controller.rb +8 -4
- data/app/controllers/spree/api/v3/admin/price_lists_controller.rb +32 -67
- data/app/controllers/spree/api/v3/admin/prices_controller.rb +51 -8
- data/app/controllers/spree/api/v3/admin/product_types_controller.rb +25 -8
- data/app/controllers/spree/api/v3/admin/products/digital_assets_controller.rb +29 -16
- data/app/controllers/spree/api/v3/admin/products/variants_controller.rb +9 -18
- data/app/controllers/spree/api/v3/admin/products_controller.rb +122 -71
- data/app/controllers/spree/api/v3/admin/promotion_actions_controller.rb +11 -6
- data/app/controllers/spree/api/v3/admin/promotion_rules_controller.rb +10 -5
- data/app/controllers/spree/api/v3/admin/promotions_controller.rb +50 -14
- data/app/controllers/spree/api/v3/admin/purchase_orders_controller.rb +55 -8
- data/app/controllers/spree/api/v3/admin/refund_reasons_controller.rb +5 -1
- data/app/controllers/spree/api/v3/admin/reporting/saved_reports_controller.rb +9 -1
- data/app/controllers/spree/api/v3/admin/reporting_controller.rb +34 -0
- data/app/controllers/spree/api/v3/admin/resource_controller.rb +2 -1
- data/app/controllers/spree/api/v3/admin/return_reasons_controller.rb +5 -1
- data/app/controllers/spree/api/v3/admin/roles_controller.rb +13 -1
- data/app/controllers/spree/api/v3/admin/seller_payouts_controller.rb +7 -9
- data/app/controllers/spree/api/v3/admin/seller_requirement_submissions_controller.rb +17 -10
- data/app/controllers/spree/api/v3/admin/seller_requirements_controller.rb +32 -6
- data/app/controllers/spree/api/v3/admin/seller_transfers_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/sellers/invitations_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/sellers/payouts_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/sellers_controller.rb +77 -32
- data/app/controllers/spree/api/v3/admin/setup_controller.rb +54 -23
- data/app/controllers/spree/api/v3/admin/stock_levels_controller.rb +38 -9
- data/app/controllers/spree/api/v3/admin/stock_locations_controller.rb +41 -9
- data/app/controllers/spree/api/v3/admin/stock_transfers_controller.rb +49 -8
- data/app/controllers/spree/api/v3/admin/store_controller.rb +122 -48
- data/app/controllers/spree/api/v3/admin/store_credits_controller.rb +1 -7
- data/app/controllers/spree/api/v3/admin/suppliers_controller.rb +16 -6
- data/app/controllers/spree/api/v3/admin/tags_controller.rb +8 -5
- data/app/controllers/spree/api/v3/admin/tax_categories_controller.rb +7 -4
- data/app/controllers/spree/api/v3/admin/tax_rates_controller.rb +21 -3
- data/app/controllers/spree/api/v3/admin/tracking_carriers_controller.rb +4 -0
- data/app/controllers/spree/api/v3/admin/translations/batches_controller.rb +17 -9
- data/app/controllers/spree/api/v3/admin/translations_controller.rb +4 -0
- data/app/controllers/spree/api/v3/admin/translations_coverage_controller.rb +5 -0
- data/app/controllers/spree/api/v3/admin/updates_controller.rb +39 -0
- data/app/controllers/spree/api/v3/admin/webhook_endpoints_controller.rb +40 -13
- data/app/controllers/spree/api/v3/admin/webhook_events_controller.rb +25 -0
- data/app/controllers/spree/api/v3/base_controller.rb +12 -0
- data/app/controllers/spree/api/v3/resource_controller.rb +99 -3
- data/app/controllers/spree/api/v3/seller/auth_controller.rb +10 -2
- data/app/controllers/spree/api/v3/seller/base_controller.rb +1 -0
- data/app/controllers/spree/api/v3/seller/countries_controller.rb +3 -3
- data/app/controllers/spree/api/v3/seller/delivery_methods_controller.rb +49 -60
- data/app/controllers/spree/api/v3/seller/exports_controller.rb +21 -4
- data/app/controllers/spree/api/v3/seller/files_controller.rb +27 -0
- data/app/controllers/spree/api/v3/seller/imports_controller.rb +25 -9
- data/app/controllers/spree/api/v3/seller/invitation_acceptances_controller.rb +12 -4
- data/app/controllers/spree/api/v3/seller/invitations_controller.rb +1 -1
- data/app/controllers/spree/api/v3/seller/me_controller.rb +15 -4
- data/app/controllers/spree/api/v3/seller/onboarding_controller.rb +11 -0
- data/app/controllers/spree/api/v3/seller/orders/claims_controller.rb +35 -0
- data/app/controllers/spree/api/v3/seller/orders/deliveries_controller.rb +12 -0
- data/app/controllers/spree/api/v3/seller/orders/exchanges_controller.rb +33 -0
- data/app/controllers/spree/api/v3/seller/orders/fulfillments_controller.rb +28 -2
- data/app/controllers/spree/api/v3/seller/orders/labels_controller.rb +23 -2
- data/app/controllers/spree/api/v3/seller/orders/notes_controller.rb +8 -1
- data/app/controllers/spree/api/v3/seller/orders/returns_controller.rb +32 -0
- data/app/controllers/spree/api/v3/seller/orders_controller.rb +35 -14
- data/app/controllers/spree/api/v3/seller/package_types_controller.rb +21 -9
- data/app/controllers/spree/api/v3/seller/password_resets_controller.rb +20 -11
- data/app/controllers/spree/api/v3/seller/policies_controller.rb +12 -4
- data/app/controllers/spree/api/v3/seller/products_controller.rb +115 -28
- data/app/controllers/spree/api/v3/seller/profile_controller.rb +33 -10
- data/app/controllers/spree/api/v3/seller/requirement_submissions_controller.rb +13 -6
- data/app/controllers/spree/api/v3/seller/resource_controller.rb +12 -0
- data/app/controllers/spree/api/v3/seller/stock_locations_controller.rb +44 -13
- data/app/controllers/spree/api/v3/seller/tax_identifiers_controller.rb +10 -1
- data/app/controllers/spree/api/v3/seller/team_controller.rb +5 -1
- data/app/controllers/spree/api/v3/store/auth_controller.rb +10 -0
- data/app/controllers/spree/api/v3/store/carts/discount_codes_controller.rb +9 -2
- data/app/controllers/spree/api/v3/store/carts/fulfillments_controller.rb +11 -11
- data/app/controllers/spree/api/v3/store/carts/gift_cards_controller.rb +13 -4
- data/app/controllers/spree/api/v3/store/carts/items_controller.rb +23 -7
- data/app/controllers/spree/api/v3/store/carts/payment_sessions_controller.rb +21 -7
- data/app/controllers/spree/api/v3/store/carts/payments_controller.rb +16 -3
- data/app/controllers/spree/api/v3/store/carts/po_documents_controller.rb +26 -28
- data/app/controllers/spree/api/v3/store/carts/store_credits_controller.rb +9 -1
- data/app/controllers/spree/api/v3/store/carts/tax_identifiers_controller.rb +5 -1
- data/app/controllers/spree/api/v3/store/carts_controller.rb +64 -52
- data/app/controllers/spree/api/v3/store/companies/addresses_controller.rb +12 -8
- data/app/controllers/spree/api/v3/store/companies/invitations_controller.rb +1 -5
- data/app/controllers/spree/api/v3/store/companies/members_controller.rb +4 -0
- data/app/controllers/spree/api/v3/store/companies_controller.rb +5 -1
- data/app/controllers/spree/api/v3/store/company_invitations_controller.rb +10 -2
- data/app/controllers/spree/api/v3/store/customer/addresses_controller.rb +8 -11
- data/app/controllers/spree/api/v3/store/customer/credit_cards_controller.rb +0 -4
- data/app/controllers/spree/api/v3/store/customer/data_requests_controller.rb +5 -5
- data/app/controllers/spree/api/v3/store/customer/digital_links_controller.rb +0 -4
- data/app/controllers/spree/api/v3/store/customer/gift_cards_controller.rb +0 -4
- data/app/controllers/spree/api/v3/store/customer/orders_controller.rb +0 -4
- data/app/controllers/spree/api/v3/store/customer/password_resets_controller.rb +25 -6
- data/app/controllers/spree/api/v3/store/customer/payment_setup_sessions_controller.rb +10 -9
- data/app/controllers/spree/api/v3/store/customer/store_credits_controller.rb +0 -5
- data/app/controllers/spree/api/v3/store/customer/tax_identifiers_controller.rb +5 -1
- data/app/controllers/spree/api/v3/store/customers_controller.rb +28 -2
- data/app/controllers/spree/api/v3/store/data_request_downloads_controller.rb +1 -1
- data/app/controllers/spree/api/v3/store/delivery_methods_controller.rb +1 -1
- data/app/controllers/spree/api/v3/store/newsletter_subscribers_controller.rb +27 -14
- data/app/controllers/spree/api/v3/store/orders/claims_controller.rb +12 -7
- data/app/controllers/spree/api/v3/store/orders/returns_controller.rb +11 -6
- data/app/controllers/spree/api/v3/store/orders_controller.rb +47 -10
- data/app/controllers/spree/api/v3/store/products_controller.rb +8 -0
- data/app/controllers/spree/api/v3/store/wishlist_items_controller.rb +10 -8
- data/app/controllers/spree/api/v3/store/wishlists_controller.rb +12 -4
- data/app/request_schemas/spree/api/v3/address_request_schema.rb +27 -0
- data/app/request_schemas/spree/api/v3/admin/address_request_schema.rb +13 -0
- data/app/request_schemas/spree/api/v3/admin/bulk_tags_request_schema.rb +17 -0
- data/app/request_schemas/spree/api/v3/admin/catalog_order_minimum_request_schema.rb +17 -0
- data/app/request_schemas/spree/api/v3/admin/email_template_language_request_schema.rb +17 -0
- data/app/request_schemas/spree/api/v3/admin/email_template_preview_request_schema.rb +32 -0
- data/app/request_schemas/spree/api/v3/admin/price_adjustment_tier_request_schema.rb +21 -0
- data/app/request_schemas/spree/api/v3/admin/price_list_price_request_schema.rb +21 -0
- data/app/request_schemas/spree/api/v3/admin/price_list_rule_request_schema.rb +19 -0
- data/app/request_schemas/spree/api/v3/admin/product_membership_reposition_request_schema.rb +17 -0
- data/app/request_schemas/spree/api/v3/admin/promotion_action_calculator_request_schema.rb +18 -0
- data/app/request_schemas/spree/api/v3/admin/promotion_action_line_item_request_schema.rb +15 -0
- data/app/request_schemas/spree/api/v3/admin/promotion_action_request_schema.rb +19 -0
- data/app/request_schemas/spree/api/v3/admin/promotion_rule_request_schema.rb +22 -0
- data/app/request_schemas/spree/api/v3/admin/reason_request_schema.rb +14 -0
- data/app/request_schemas/spree/api/v3/admin/tax_identifier_request_schema.rb +15 -0
- data/app/request_schemas/spree/api/v3/custom_field_value_request_schema.rb +15 -0
- data/app/request_schemas/spree/api/v3/file_upload_request_schema.rb +20 -0
- data/app/request_schemas/spree/api/v3/media_request_schema.rb +27 -0
- data/app/request_schemas/spree/api/v3/price_request_schema.rb +17 -0
- data/app/request_schemas/spree/api/v3/stock_level_request_schema.rb +18 -0
- data/app/request_schemas/spree/api/v3/store/address_request_schema.rb +29 -0
- data/app/request_schemas/spree/api/v3/tax_identifier_request_schema.rb +18 -0
- data/app/request_schemas/spree/api/v3/variant_option_request_schema.rb +13 -0
- data/app/request_schemas/spree/api/v3/variant_request_schema.rb +52 -0
- data/app/serializers/concerns/spree/api/v3/purchase_summary.rb +48 -0
- data/app/serializers/spree/api/v3/address_serializer.rb +4 -2
- data/app/serializers/spree/api/v3/admin/address_serializer.rb +8 -7
- data/app/serializers/spree/api/v3/admin/api_key_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/admin/applied_promotion_serializer.rb +3 -1
- data/app/serializers/spree/api/v3/admin/cart_serializer.rb +3 -1
- data/app/serializers/spree/api/v3/admin/catalog_assignment_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/catalog_order_minimum_serializer.rb +3 -8
- data/app/serializers/spree/api/v3/admin/catalog_price_serializer.rb +3 -4
- data/app/serializers/spree/api/v3/admin/catalog_price_tier_serializer.rb +4 -3
- data/app/serializers/spree/api/v3/admin/catalog_product_term_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/catalog_quantity_rule_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/channel_serializer.rb +7 -10
- data/app/serializers/spree/api/v3/admin/claim_line_item_serializer.rb +7 -0
- data/app/serializers/spree/api/v3/admin/claim_reason_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/claim_serializer.rb +5 -0
- data/app/serializers/spree/api/v3/admin/commission_line_serializer.rb +7 -18
- data/app/serializers/spree/api/v3/admin/commission_rate_serializer.rb +7 -11
- data/app/serializers/spree/api/v3/admin/commission_rule_serializer.rb +1 -5
- data/app/serializers/spree/api/v3/admin/country_serializer.rb +4 -0
- data/app/serializers/spree/api/v3/admin/coupon_code_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/credit_card_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/custom_field_definition_serializer.rb +6 -2
- data/app/serializers/spree/api/v3/admin/customer_serializer.rb +5 -17
- data/app/serializers/spree/api/v3/admin/data_request_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/admin/delivery_method_rule_serializer.rb +0 -2
- data/app/serializers/spree/api/v3/admin/delivery_method_serializer.rb +20 -30
- data/app/serializers/spree/api/v3/admin/delivery_method_service_serializer.rb +9 -1
- data/app/serializers/spree/api/v3/admin/delivery_origin_group_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/delivery_rate_serializer.rb +8 -0
- data/app/serializers/spree/api/v3/admin/delivery_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/delivery_zone_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/digital_asset_serializer.rb +4 -2
- data/app/serializers/spree/api/v3/admin/discount_serializer.rb +3 -1
- data/app/serializers/spree/api/v3/admin/email_template_draft_serializer.rb +19 -0
- data/app/serializers/spree/api/v3/admin/email_template_preview_serializer.rb +38 -0
- data/app/serializers/spree/api/v3/admin/email_template_revision_serializer.rb +18 -0
- data/app/serializers/spree/api/v3/admin/email_template_sample_record_serializer.rb +13 -0
- data/app/serializers/spree/api/v3/admin/email_template_serializer.rb +61 -0
- data/app/serializers/spree/api/v3/admin/exchange_line_item_serializer.rb +5 -0
- data/app/serializers/spree/api/v3/admin/exchange_serializer.rb +6 -3
- data/app/serializers/spree/api/v3/admin/export_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/fee_serializer.rb +3 -1
- data/app/serializers/spree/api/v3/admin/file_upload_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/admin/file_upload_target_serializer.rb +10 -0
- data/app/serializers/spree/api/v3/admin/fulfillment_item_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/fulfillment_serializer.rb +13 -17
- data/app/serializers/spree/api/v3/admin/gift_card_serializer.rb +4 -10
- data/app/serializers/spree/api/v3/admin/import_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/admin/integration_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/line_item_serializer.rb +14 -18
- data/app/serializers/spree/api/v3/admin/locale_serializer.rb +13 -0
- data/app/serializers/spree/api/v3/admin/market_serializer.rb +7 -2
- data/app/serializers/spree/api/v3/admin/media_serializer.rb +4 -5
- data/app/serializers/spree/api/v3/admin/order_cancellation_reason_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/order_group_serializer.rb +5 -9
- data/app/serializers/spree/api/v3/admin/order_routing_rule_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/admin/order_serializer.rb +38 -48
- data/app/serializers/spree/api/v3/admin/package_type_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/payment_method_serializer.rb +7 -4
- data/app/serializers/spree/api/v3/admin/payment_serializer.rb +6 -8
- data/app/serializers/spree/api/v3/admin/payment_split_serializer.rb +8 -9
- data/app/serializers/spree/api/v3/admin/permission_serializer.rb +4 -4
- data/app/serializers/spree/api/v3/admin/price_adjustment_tier_serializer.rb +3 -6
- data/app/serializers/spree/api/v3/admin/price_history_serializer.rb +5 -2
- data/app/serializers/spree/api/v3/admin/price_list_serializer.rb +1 -5
- data/app/serializers/spree/api/v3/admin/price_rule_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/admin/price_serializer.rb +2 -0
- data/app/serializers/spree/api/v3/admin/product_serializer.rb +4 -10
- data/app/serializers/spree/api/v3/admin/product_submission_serializer.rb +2 -10
- data/app/serializers/spree/api/v3/admin/product_type_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/promotion_action_serializer.rb +5 -9
- data/app/serializers/spree/api/v3/admin/promotion_rule_serializer.rb +1 -5
- data/app/serializers/spree/api/v3/admin/purchase_order_item_serializer.rb +6 -25
- data/app/serializers/spree/api/v3/admin/purchase_order_serializer.rb +4 -17
- data/app/serializers/spree/api/v3/admin/refund_reason_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/refund_serializer.rb +7 -0
- data/app/serializers/spree/api/v3/admin/reporting_result_serializer.rb +9 -2
- data/app/serializers/spree/api/v3/admin/return_line_item_serializer.rb +9 -0
- data/app/serializers/spree/api/v3/admin/return_reason_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/return_serializer.rb +8 -12
- data/app/serializers/spree/api/v3/admin/saved_report_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/seller_balance_serializer.rb +15 -10
- data/app/serializers/spree/api/v3/admin/seller_payout_serializer.rb +7 -7
- data/app/serializers/spree/api/v3/admin/seller_requirement_status_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/admin/seller_requirement_submission_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/seller_serializer.rb +8 -16
- data/app/serializers/spree/api/v3/admin/seller_transfer_serializer.rb +11 -10
- data/app/serializers/spree/api/v3/admin/shipping_label_serializer.rb +8 -21
- data/app/serializers/spree/api/v3/admin/stock_level_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/stock_location_serializer.rb +4 -3
- data/app/serializers/spree/api/v3/admin/stock_movement_serializer.rb +3 -9
- data/app/serializers/spree/api/v3/admin/stock_receipt_item_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/stock_receipt_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/stock_reservation_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/stock_transfer_item_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/store_credit_event_serializer.rb +6 -3
- data/app/serializers/spree/api/v3/admin/store_credit_serializer.rb +11 -20
- data/app/serializers/spree/api/v3/admin/store_serializer.rb +21 -84
- data/app/serializers/spree/api/v3/admin/supplier_serializer.rb +2 -4
- data/app/serializers/spree/api/v3/admin/tax_exemption_certificate_serializer.rb +6 -10
- data/app/serializers/spree/api/v3/admin/tax_identifier_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/tax_line_serializer.rb +9 -3
- data/app/serializers/spree/api/v3/admin/tax_rate_serializer.rb +3 -19
- data/app/serializers/spree/api/v3/admin/update_status_serializer.rb +28 -0
- data/app/serializers/spree/api/v3/admin/variant_serializer.rb +13 -10
- data/app/serializers/spree/api/v3/admin/webhook_delivery_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/webhook_event_serializer.rb +23 -0
- data/app/serializers/spree/api/v3/applied_promotion_serializer.rb +2 -4
- data/app/serializers/spree/api/v3/base_serializer.rb +132 -7
- data/app/serializers/spree/api/v3/cart_serializer.rb +20 -66
- data/app/serializers/spree/api/v3/category_serializer.rb +5 -15
- data/app/serializers/spree/api/v3/claim_line_item_serializer.rb +6 -29
- data/app/serializers/spree/api/v3/claim_serializer.rb +2 -16
- data/app/serializers/spree/api/v3/collection_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/company_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/country_serializer.rb +2 -1
- data/app/serializers/spree/api/v3/currency_serializer.rb +9 -1
- data/app/serializers/spree/api/v3/custom_field_serializer.rb +1 -2
- data/app/serializers/spree/api/v3/customer_serializer.rb +3 -2
- data/app/serializers/spree/api/v3/delivery_rate_serializer.rb +8 -32
- data/app/serializers/spree/api/v3/delivery_zone_member_serializer.rb +1 -1
- data/app/serializers/spree/api/v3/digital_asset_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/digital_link_serializer.rb +3 -9
- data/app/serializers/spree/api/v3/discount_serializer.rb +4 -12
- data/app/serializers/spree/api/v3/exchange_line_item_serializer.rb +6 -30
- data/app/serializers/spree/api/v3/exchange_serializer.rb +2 -16
- data/app/serializers/spree/api/v3/export_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/fee_serializer.rb +2 -10
- data/app/serializers/spree/api/v3/file_upload_serializer.rb +28 -0
- data/app/serializers/spree/api/v3/file_upload_target_serializer.rb +17 -0
- data/app/serializers/spree/api/v3/fulfillment_serializer.rb +4 -11
- data/app/serializers/spree/api/v3/gift_card_batch_serializer.rb +3 -7
- data/app/serializers/spree/api/v3/gift_card_serializer.rb +7 -17
- data/app/serializers/spree/api/v3/import_row_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/import_serializer.rb +3 -26
- data/app/serializers/spree/api/v3/invitation_serializer.rb +2 -19
- data/app/serializers/spree/api/v3/line_item_serializer.rb +19 -23
- data/app/serializers/spree/api/v3/locale_serializer.rb +3 -1
- data/app/serializers/spree/api/v3/market_serializer.rb +5 -5
- data/app/serializers/spree/api/v3/media_event_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/media_serializer.rb +8 -5
- data/app/serializers/spree/api/v3/newsletter_subscriber_request_event_serializer.rb +35 -0
- data/app/serializers/spree/api/v3/newsletter_subscriber_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/option_value_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/order_group_serializer.rb +12 -25
- data/app/serializers/spree/api/v3/order_serializer.rb +14 -58
- data/app/serializers/spree/api/v3/password_reset_requested_event_serializer.rb +29 -0
- data/app/serializers/spree/api/v3/payment_method_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/payment_serializer.rb +5 -10
- data/app/serializers/spree/api/v3/payment_session_serializer.rb +5 -13
- data/app/serializers/spree/api/v3/payment_setup_session_serializer.rb +3 -11
- data/app/serializers/spree/api/v3/policy_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/price_history_serializer.rb +6 -8
- data/app/serializers/spree/api/v3/price_serializer.rb +7 -12
- data/app/serializers/spree/api/v3/product_filter_price_range_serializer.rb +10 -4
- data/app/serializers/spree/api/v3/product_publication_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/product_serializer.rb +10 -24
- data/app/serializers/spree/api/v3/product_submission_serializer.rb +26 -0
- data/app/serializers/spree/api/v3/purchase_order_event_serializer.rb +23 -4
- data/app/serializers/spree/api/v3/refund_serializer.rb +11 -16
- data/app/serializers/spree/api/v3/return_line_item_serializer.rb +6 -21
- data/app/serializers/spree/api/v3/return_serializer.rb +4 -16
- data/app/serializers/spree/api/v3/saved_report_event_serializer.rb +23 -0
- data/app/serializers/spree/api/v3/seller/address_serializer.rb +12 -0
- data/app/serializers/spree/api/v3/seller/balance_serializer.rb +15 -10
- data/app/serializers/spree/api/v3/seller/claim_line_item_serializer.rb +7 -0
- data/app/serializers/spree/api/v3/seller/claim_serializer.rb +5 -0
- data/app/serializers/spree/api/v3/seller/country_serializer.rb +19 -0
- data/app/serializers/spree/api/v3/seller/delivery_method_rule_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/seller/delivery_method_serializer.rb +5 -15
- data/app/serializers/spree/api/v3/seller/delivery_rate_serializer.rb +8 -13
- data/app/serializers/spree/api/v3/seller/delivery_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/seller/delivery_zone_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/seller/exchange_line_item_serializer.rb +5 -0
- data/app/serializers/spree/api/v3/seller/exchange_serializer.rb +6 -3
- data/app/serializers/spree/api/v3/seller/file_upload_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/seller/file_upload_target_serializer.rb +10 -0
- data/app/serializers/spree/api/v3/seller/fulfillment_item_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/seller/fulfillment_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/seller/import_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/seller/invitation_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/seller/media_serializer.rb +2 -5
- data/app/serializers/spree/api/v3/seller/order_line_item_serializer.rb +8 -13
- data/app/serializers/spree/api/v3/seller/order_serializer.rb +19 -40
- data/app/serializers/spree/api/v3/seller/payment_split_serializer.rb +8 -9
- data/app/serializers/spree/api/v3/seller/payout_serializer.rb +6 -6
- data/app/serializers/spree/api/v3/seller/price_history_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/seller/price_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/seller/product_serializer.rb +3 -7
- data/app/serializers/spree/api/v3/seller/product_submission_serializer.rb +1 -21
- data/app/serializers/spree/api/v3/seller/profile_serializer.rb +9 -13
- data/app/serializers/spree/api/v3/seller/requirement_status_serializer.rb +3 -9
- data/app/serializers/spree/api/v3/seller/return_line_item_serializer.rb +8 -0
- data/app/serializers/spree/api/v3/seller/return_serializer.rb +8 -17
- data/app/serializers/spree/api/v3/seller/state_serializer.rb +10 -0
- data/app/serializers/spree/api/v3/seller/stock_location_serializer.rb +3 -0
- data/app/serializers/spree/api/v3/seller/transfer_serializer.rb +10 -9
- data/app/serializers/spree/api/v3/seller/variant_serializer.rb +8 -4
- data/app/serializers/spree/api/v3/seller_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/shipping_label_event_serializer.rb +22 -4
- data/app/serializers/spree/api/v3/stock_level_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/stock_location_serializer.rb +8 -1
- data/app/serializers/spree/api/v3/stock_movement_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/stock_receipt_event_serializer.rb +20 -4
- data/app/serializers/spree/api/v3/stock_transfer_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/store_credit_event_serializer.rb +2 -13
- data/app/serializers/spree/api/v3/store_credit_serializer.rb +3 -27
- data/app/serializers/spree/api/v3/supplier_event_serializer.rb +6 -4
- data/app/serializers/spree/api/v3/tax_line_serializer.rb +11 -23
- data/app/serializers/spree/api/v3/variant_serializer.rb +10 -24
- data/app/serializers/spree/api/v3/wishlist_item_serializer.rb +1 -11
- data/app/serializers/spree/api/v3/wishlist_serializer.rb +2 -6
- data/app/services/spree/api/v3/filter_predicates.rb +29 -0
- data/app/services/spree/api/v3/filter_table.rb +337 -0
- data/app/services/spree/api/v3/filters_aggregator.rb +2 -2
- data/app/services/spree/api/v3/request_schema.rb +430 -0
- data/app/services/spree/webhooks/deliver_webhook.rb +7 -3
- data/app/subscribers/spree/webhook_event_subscriber.rb +3 -10
- data/config/initializers/pagy.rb +1 -1
- data/config/initializers/typelizer.rb +7 -9
- data/config/locales/ar.yml +15 -0
- data/config/locales/be.yml +15 -0
- data/config/locales/bg.yml +15 -0
- data/config/locales/ca.yml +15 -0
- data/config/locales/cs.yml +15 -0
- data/config/locales/da.yml +15 -0
- data/config/locales/de-CH.yml +11 -0
- data/config/locales/de.yml +15 -0
- data/config/locales/el.yml +15 -0
- data/config/locales/en.yml +5 -40
- data/config/locales/es-CL.yml +10 -0
- data/config/locales/es-EC.yml +11 -0
- data/config/locales/es-MX.yml +12 -0
- data/config/locales/es.yml +15 -0
- data/config/locales/et.yml +15 -0
- data/config/locales/fa.yml +15 -0
- data/config/locales/fi.yml +15 -0
- data/config/locales/fr.yml +15 -0
- data/config/locales/hu.yml +15 -0
- data/config/locales/id.yml +15 -0
- data/config/locales/it.yml +15 -0
- data/config/locales/ja.yml +15 -0
- data/config/locales/km.yml +15 -0
- data/config/locales/ko.yml +15 -0
- data/config/locales/ku.yml +15 -0
- data/config/locales/lt.yml +15 -0
- data/config/locales/lv.yml +15 -0
- data/config/locales/nb.yml +15 -0
- data/config/locales/ne.yml +15 -0
- data/config/locales/nl.yml +15 -0
- data/config/locales/pl.yml +15 -0
- data/config/locales/pt-BR.yml +13 -0
- data/config/locales/pt.yml +15 -0
- data/config/locales/ro.yml +15 -0
- data/config/locales/ru.yml +15 -0
- data/config/locales/sk.yml +15 -0
- data/config/locales/sl-SI.yml +15 -0
- data/config/locales/sv.yml +15 -0
- data/config/locales/th.yml +15 -0
- data/config/locales/tr.yml +15 -0
- data/config/locales/uk.yml +15 -0
- data/config/locales/vi.yml +15 -0
- data/config/locales/zh-CN.yml +15 -0
- data/config/locales/zh-TW.yml +15 -0
- data/config/routes.rb +54 -102
- data/lib/spree/api/configuration.rb +5 -0
- data/lib/spree/api/dependencies.rb +54 -274
- data/lib/spree/api/middleware/request_size_limit.rb +24 -3
- data/lib/spree/api/openapi/filter_documentation.rb +136 -0
- data/lib/spree/api/openapi/schema_helper.rb +127 -81
- data/lib/spree/api/preference_families.rb +46 -0
- data/lib/spree/api/preference_types.rb +138 -0
- data/lib/spree/api/typelizer_generation.rb +39 -0
- data/lib/spree/api/webhook_event_types.rb +140 -0
- data/lib/spree/api.rb +0 -2
- data/lib/tasks/filters.rake +12 -0
- data/lib/typelizer/open_enums.rb +10 -0
- metadata +125 -40
- data/app/controllers/concerns/spree/api/v3/address_params.rb +0 -17
- data/app/controllers/concerns/spree/api/v3/direct_uploads.rb +0 -35
- data/app/controllers/spree/api/v3/admin/direct_uploads_controller.rb +0 -54
- data/app/controllers/spree/api/v3/seller/direct_uploads_controller.rb +0 -21
- data/config/i18n-tasks.yml +0 -40
- data/config/initializers/alba.rb +0 -5
|
@@ -3,288 +3,68 @@ require 'spree/core/dependencies_helper'
|
|
|
3
3
|
module Spree
|
|
4
4
|
module Api
|
|
5
5
|
class ApiDependencies
|
|
6
|
+
# Serializers named after their key: `product_serializer` is
|
|
7
|
+
# Spree::Api::V3::ProductSerializer, `admin_product_serializer` its Admin
|
|
8
|
+
# twin and `seller_product_serializer` its Seller one.
|
|
9
|
+
STORE_SERIALIZERS =
|
|
10
|
+
%i[credit_card price price_history product product_type variant media option_type option_value cart order
|
|
11
|
+
order_group line_item payment payment_session payment_setup_session payment_source store_credit
|
|
12
|
+
fulfillment delivery address customer data_request customer_group country channel product_publication
|
|
13
|
+
market state wishlist wishlist_item payment_method delivery_method delivery_rate freight_summary
|
|
14
|
+
stock_location category collection applied_promotion discount tax_line delivery_zone delivery_zone_member
|
|
15
|
+
fee digital_link gift_card currency locale policy custom_field tax_category tax_identifier
|
|
16
|
+
product_filters product_filter_price_range product_filter_availability product_filter_availability_option
|
|
17
|
+
product_filter_option product_filter_option_value product_filter_category product_filter_category_option
|
|
18
|
+
product_filter_sort_option media_event return return_line_item exchange exchange_line_item claim
|
|
19
|
+
claim_line_item return_reason claim_reason digital_asset export gift_card_batch import import_row
|
|
20
|
+
invitation newsletter_subscriber promotion refund stock_level stock_movement stock_reservation
|
|
21
|
+
stock_transfer company company_membership company_invitation seller file_upload file_upload_target].freeze
|
|
22
|
+
|
|
23
|
+
ADMIN_SERIALIZERS =
|
|
24
|
+
%i[country state locale applied_promotion discount tax_line cart delivery_zone delivery_profile
|
|
25
|
+
delivery_origin_group integration delivery_method_rule delivery_zone_member fee consent_record customer
|
|
26
|
+
data_request newsletter_subscriber order order_group product product_type
|
|
27
|
+
product_type_custom_field_definition variant price price_history custom_field custom_field_definition
|
|
28
|
+
category collection collection_rule line_item option_type option_value media stock_level stock_movement
|
|
29
|
+
stock_transfer stock_transfer_item supplier purchase_order purchase_order_item stock_receipt
|
|
30
|
+
stock_receipt_item fulfillment fulfillment_item delivery shipping_label gift_card gift_card_batch payment
|
|
31
|
+
refund return_reason claim_reason refund_reason order_cancellation_reason return return_line_item
|
|
32
|
+
exchange exchange_line_item claim claim_line_item package_type policy tax_category tax_rate
|
|
33
|
+
tax_identifier company company_membership company_invitation catalog catalog_price catalog_price_tier
|
|
34
|
+
catalog_product price_list_product catalog_assignment catalog_quantity_rule catalog_product_term
|
|
35
|
+
catalog_order_minimum tax_exemption_certificate admin_user actor seller_team_member product_submission
|
|
36
|
+
seller seller_requirement seller_requirement_submission seller_requirement_status commission_rate
|
|
37
|
+
commission_rule commission_line seller_transfer seller_payout seller_balance payment_split address
|
|
38
|
+
channel order_routing_rule product_publication market delivery_method delivery_method_service
|
|
39
|
+
stock_location stock_reservation delivery_rate freight_summary freight_summary_line payment_method
|
|
40
|
+
credit_card store_credit store_credit_event customer_group payment_source digital_asset digital_link
|
|
41
|
+
store setup_task update_status api_key allowed_origin webhook_endpoint webhook_event webhook_delivery invitation
|
|
42
|
+
invitation_acceptance_link role permission export saved_report import import_row import_mapping promotion
|
|
43
|
+
promotion_action promotion_rule coupon_code price_adjustment_tier price_list price_rule
|
|
44
|
+
resource_translations email_template email_template_draft email_template_revision email_template_preview
|
|
45
|
+
email_template_sample_record file_upload file_upload_target].freeze
|
|
46
|
+
|
|
47
|
+
SELLER_SERIALIZERS =
|
|
48
|
+
%i[address country state profile policy team_member account invitation invitation_acceptance_link product product_type
|
|
49
|
+
delivery_profile delivery_method delivery_method_rule delivery_zone variant media stock_level order
|
|
50
|
+
order_line_item fulfillment fulfillment_item delivery delivery_rate shipping_label return
|
|
51
|
+
return_line_item exchange exchange_line_item claim claim_line_item reason package_type stock_location
|
|
52
|
+
requirement_custom_field tax_identifier requirement_status import import_row import_mapping
|
|
53
|
+
requirement_submission export transfer payout balance payment_split price price_history file_upload
|
|
54
|
+
file_upload_target].freeze
|
|
55
|
+
|
|
6
56
|
INJECTION_POINTS_WITH_DEFAULTS = {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
price_history_serializer: 'Spree::Api::V3::PriceHistorySerializer',
|
|
11
|
-
product_serializer: 'Spree::Api::V3::ProductSerializer',
|
|
12
|
-
product_type_serializer: 'Spree::Api::V3::ProductTypeSerializer',
|
|
13
|
-
variant_serializer: 'Spree::Api::V3::VariantSerializer',
|
|
14
|
-
media_serializer: 'Spree::Api::V3::MediaSerializer',
|
|
15
|
-
option_type_serializer: 'Spree::Api::V3::OptionTypeSerializer',
|
|
16
|
-
option_value_serializer: 'Spree::Api::V3::OptionValueSerializer',
|
|
17
|
-
cart_serializer: 'Spree::Api::V3::CartSerializer',
|
|
18
|
-
order_serializer: 'Spree::Api::V3::OrderSerializer',
|
|
19
|
-
order_group_serializer: 'Spree::Api::V3::OrderGroupSerializer',
|
|
20
|
-
line_item_serializer: 'Spree::Api::V3::LineItemSerializer',
|
|
21
|
-
payment_serializer: 'Spree::Api::V3::PaymentSerializer',
|
|
22
|
-
payment_session_serializer: 'Spree::Api::V3::PaymentSessionSerializer',
|
|
23
|
-
payment_setup_session_serializer: 'Spree::Api::V3::PaymentSetupSessionSerializer',
|
|
24
|
-
payment_source_serializer: 'Spree::Api::V3::PaymentSourceSerializer',
|
|
25
|
-
store_credit_serializer: 'Spree::Api::V3::StoreCreditSerializer',
|
|
57
|
+
**STORE_SERIALIZERS.to_h { |name| [:"#{name}_serializer", "Spree::Api::V3::#{name.to_s.camelize}Serializer"] },
|
|
58
|
+
**ADMIN_SERIALIZERS.to_h { |name| [:"admin_#{name}_serializer", "Spree::Api::V3::Admin::#{name.to_s.camelize}Serializer"] },
|
|
59
|
+
**SELLER_SERIALIZERS.to_h { |name| [:"seller_#{name}_serializer", "Spree::Api::V3::Seller::#{name.to_s.camelize}Serializer"] },
|
|
26
60
|
shipment_serializer: 'Spree::Api::V3::FulfillmentSerializer',
|
|
27
|
-
fulfillment_serializer: 'Spree::Api::V3::FulfillmentSerializer',
|
|
28
|
-
delivery_serializer: 'Spree::Api::V3::DeliverySerializer',
|
|
29
|
-
address_serializer: 'Spree::Api::V3::AddressSerializer',
|
|
30
|
-
customer_serializer: 'Spree::Api::V3::CustomerSerializer',
|
|
31
|
-
data_request_serializer: 'Spree::Api::V3::DataRequestSerializer',
|
|
32
|
-
customer_group_serializer: 'Spree::Api::V3::CustomerGroupSerializer',
|
|
33
|
-
country_serializer: 'Spree::Api::V3::CountrySerializer',
|
|
34
|
-
channel_serializer: 'Spree::Api::V3::ChannelSerializer',
|
|
35
|
-
product_publication_serializer: 'Spree::Api::V3::ProductPublicationSerializer',
|
|
36
|
-
market_serializer: 'Spree::Api::V3::MarketSerializer',
|
|
37
|
-
state_serializer: 'Spree::Api::V3::StateSerializer',
|
|
38
|
-
wishlist_serializer: 'Spree::Api::V3::WishlistSerializer',
|
|
39
|
-
wishlist_item_serializer: 'Spree::Api::V3::WishlistItemSerializer',
|
|
40
61
|
wished_item_serializer: 'Spree::Api::V3::WishlistItemSerializer',
|
|
41
|
-
payment_method_serializer: 'Spree::Api::V3::PaymentMethodSerializer',
|
|
42
62
|
shipping_method_serializer: 'Spree::Api::V3::DeliveryMethodSerializer',
|
|
43
63
|
shipping_rate_serializer: 'Spree::Api::V3::DeliveryRateSerializer',
|
|
44
|
-
delivery_method_serializer: 'Spree::Api::V3::DeliveryMethodSerializer',
|
|
45
|
-
delivery_rate_serializer: 'Spree::Api::V3::DeliveryRateSerializer',
|
|
46
|
-
freight_summary_serializer: 'Spree::Api::V3::FreightSummarySerializer',
|
|
47
|
-
stock_location_serializer: 'Spree::Api::V3::StockLocationSerializer',
|
|
48
|
-
category_serializer: 'Spree::Api::V3::CategorySerializer',
|
|
49
|
-
collection_serializer: 'Spree::Api::V3::CollectionSerializer',
|
|
50
|
-
applied_promotion_serializer: 'Spree::Api::V3::AppliedPromotionSerializer',
|
|
51
|
-
discount_serializer: 'Spree::Api::V3::DiscountSerializer',
|
|
52
|
-
tax_line_serializer: 'Spree::Api::V3::TaxLineSerializer',
|
|
53
|
-
delivery_zone_serializer: 'Spree::Api::V3::DeliveryZoneSerializer',
|
|
54
|
-
delivery_zone_member_serializer: 'Spree::Api::V3::DeliveryZoneMemberSerializer',
|
|
55
|
-
fee_serializer: 'Spree::Api::V3::FeeSerializer',
|
|
56
|
-
digital_link_serializer: 'Spree::Api::V3::DigitalLinkSerializer',
|
|
57
|
-
gift_card_serializer: 'Spree::Api::V3::GiftCardSerializer',
|
|
58
|
-
currency_serializer: 'Spree::Api::V3::CurrencySerializer',
|
|
59
|
-
locale_serializer: 'Spree::Api::V3::LocaleSerializer',
|
|
60
|
-
policy_serializer: 'Spree::Api::V3::PolicySerializer',
|
|
61
|
-
custom_field_serializer: 'Spree::Api::V3::CustomFieldSerializer',
|
|
62
|
-
tax_category_serializer: 'Spree::Api::V3::TaxCategorySerializer',
|
|
63
|
-
tax_identifier_serializer: 'Spree::Api::V3::TaxIdentifierSerializer',
|
|
64
|
-
product_filters_serializer: 'Spree::Api::V3::ProductFiltersSerializer',
|
|
65
|
-
product_filter_price_range_serializer: 'Spree::Api::V3::ProductFilterPriceRangeSerializer',
|
|
66
|
-
product_filter_availability_serializer: 'Spree::Api::V3::ProductFilterAvailabilitySerializer',
|
|
67
|
-
product_filter_availability_option_serializer: 'Spree::Api::V3::ProductFilterAvailabilityOptionSerializer',
|
|
68
|
-
product_filter_option_serializer: 'Spree::Api::V3::ProductFilterOptionSerializer',
|
|
69
|
-
product_filter_option_value_serializer: 'Spree::Api::V3::ProductFilterOptionValueSerializer',
|
|
70
|
-
product_filter_category_serializer: 'Spree::Api::V3::ProductFilterCategorySerializer',
|
|
71
|
-
product_filter_category_option_serializer: 'Spree::Api::V3::ProductFilterCategoryOptionSerializer',
|
|
72
|
-
product_filter_sort_option_serializer: 'Spree::Api::V3::ProductFilterSortOptionSerializer',
|
|
73
|
-
|
|
74
|
-
# v3 event serializers (for models without Store API endpoints yet)
|
|
75
|
-
media_event_serializer: 'Spree::Api::V3::MediaEventSerializer',
|
|
76
|
-
return_serializer: 'Spree::Api::V3::ReturnSerializer',
|
|
77
|
-
return_line_item_serializer: 'Spree::Api::V3::ReturnLineItemSerializer',
|
|
78
|
-
exchange_serializer: 'Spree::Api::V3::ExchangeSerializer',
|
|
79
|
-
exchange_line_item_serializer: 'Spree::Api::V3::ExchangeLineItemSerializer',
|
|
80
|
-
claim_serializer: 'Spree::Api::V3::ClaimSerializer',
|
|
81
|
-
claim_line_item_serializer: 'Spree::Api::V3::ClaimLineItemSerializer',
|
|
82
|
-
return_reason_serializer: 'Spree::Api::V3::ReturnReasonSerializer',
|
|
83
|
-
claim_reason_serializer: 'Spree::Api::V3::ClaimReasonSerializer',
|
|
84
|
-
digital_asset_serializer: 'Spree::Api::V3::DigitalAssetSerializer',
|
|
85
|
-
export_serializer: 'Spree::Api::V3::ExportSerializer',
|
|
86
|
-
gift_card_batch_serializer: 'Spree::Api::V3::GiftCardBatchSerializer',
|
|
87
|
-
import_serializer: 'Spree::Api::V3::ImportSerializer',
|
|
88
|
-
import_row_serializer: 'Spree::Api::V3::ImportRowSerializer',
|
|
89
|
-
invitation_serializer: 'Spree::Api::V3::InvitationSerializer',
|
|
90
|
-
newsletter_subscriber_serializer: 'Spree::Api::V3::NewsletterSubscriberSerializer',
|
|
91
|
-
promotion_serializer: 'Spree::Api::V3::PromotionSerializer',
|
|
92
|
-
refund_serializer: 'Spree::Api::V3::RefundSerializer',
|
|
93
|
-
stock_level_serializer: 'Spree::Api::V3::StockLevelSerializer',
|
|
94
|
-
stock_movement_serializer: 'Spree::Api::V3::StockMovementSerializer',
|
|
95
|
-
stock_reservation_serializer: 'Spree::Api::V3::StockReservationSerializer',
|
|
96
|
-
stock_transfer_serializer: 'Spree::Api::V3::StockTransferSerializer',
|
|
97
|
-
|
|
98
|
-
# v3 admin serializers (API v3 Admin)
|
|
99
|
-
admin_country_serializer: 'Spree::Api::V3::Admin::CountrySerializer',
|
|
100
|
-
admin_state_serializer: 'Spree::Api::V3::Admin::StateSerializer',
|
|
101
|
-
admin_applied_promotion_serializer: 'Spree::Api::V3::Admin::AppliedPromotionSerializer',
|
|
102
|
-
admin_discount_serializer: 'Spree::Api::V3::Admin::DiscountSerializer',
|
|
103
|
-
admin_tax_line_serializer: 'Spree::Api::V3::Admin::TaxLineSerializer',
|
|
104
|
-
admin_cart_serializer: 'Spree::Api::V3::Admin::CartSerializer',
|
|
105
|
-
admin_delivery_zone_serializer: 'Spree::Api::V3::Admin::DeliveryZoneSerializer',
|
|
106
|
-
admin_delivery_profile_serializer: 'Spree::Api::V3::Admin::DeliveryProfileSerializer',
|
|
107
|
-
admin_delivery_origin_group_serializer: 'Spree::Api::V3::Admin::DeliveryOriginGroupSerializer',
|
|
108
|
-
admin_integration_serializer: 'Spree::Api::V3::Admin::IntegrationSerializer',
|
|
109
|
-
admin_delivery_method_rule_serializer: 'Spree::Api::V3::Admin::DeliveryMethodRuleSerializer',
|
|
110
|
-
admin_delivery_zone_member_serializer: 'Spree::Api::V3::Admin::DeliveryZoneMemberSerializer',
|
|
111
|
-
admin_fee_serializer: 'Spree::Api::V3::Admin::FeeSerializer',
|
|
112
|
-
admin_consent_record_serializer: 'Spree::Api::V3::Admin::ConsentRecordSerializer',
|
|
113
|
-
admin_customer_serializer: 'Spree::Api::V3::Admin::CustomerSerializer',
|
|
114
|
-
admin_data_request_serializer: 'Spree::Api::V3::Admin::DataRequestSerializer',
|
|
115
|
-
admin_newsletter_subscriber_serializer: 'Spree::Api::V3::Admin::NewsletterSubscriberSerializer',
|
|
116
|
-
admin_order_serializer: 'Spree::Api::V3::Admin::OrderSerializer',
|
|
117
|
-
admin_order_group_serializer: 'Spree::Api::V3::Admin::OrderGroupSerializer',
|
|
118
|
-
admin_product_serializer: 'Spree::Api::V3::Admin::ProductSerializer',
|
|
119
|
-
admin_product_type_serializer: 'Spree::Api::V3::Admin::ProductTypeSerializer',
|
|
120
|
-
admin_product_type_custom_field_definition_serializer: 'Spree::Api::V3::Admin::ProductTypeCustomFieldDefinitionSerializer',
|
|
121
|
-
admin_variant_serializer: 'Spree::Api::V3::Admin::VariantSerializer',
|
|
122
|
-
admin_price_serializer: 'Spree::Api::V3::Admin::PriceSerializer',
|
|
123
|
-
admin_price_history_serializer: 'Spree::Api::V3::Admin::PriceHistorySerializer',
|
|
124
|
-
admin_custom_field_serializer: 'Spree::Api::V3::Admin::CustomFieldSerializer',
|
|
125
|
-
admin_custom_field_definition_serializer: 'Spree::Api::V3::Admin::CustomFieldDefinitionSerializer',
|
|
126
|
-
admin_category_serializer: 'Spree::Api::V3::Admin::CategorySerializer',
|
|
127
|
-
admin_collection_serializer: 'Spree::Api::V3::Admin::CollectionSerializer',
|
|
128
|
-
admin_collection_rule_serializer: 'Spree::Api::V3::Admin::CollectionRuleSerializer',
|
|
129
|
-
admin_line_item_serializer: 'Spree::Api::V3::Admin::LineItemSerializer',
|
|
130
|
-
admin_option_type_serializer: 'Spree::Api::V3::Admin::OptionTypeSerializer',
|
|
131
|
-
admin_option_value_serializer: 'Spree::Api::V3::Admin::OptionValueSerializer',
|
|
132
|
-
admin_media_serializer: 'Spree::Api::V3::Admin::MediaSerializer',
|
|
133
|
-
admin_stock_level_serializer: 'Spree::Api::V3::Admin::StockLevelSerializer',
|
|
134
|
-
admin_stock_movement_serializer: 'Spree::Api::V3::Admin::StockMovementSerializer',
|
|
135
|
-
admin_stock_transfer_serializer: 'Spree::Api::V3::Admin::StockTransferSerializer',
|
|
136
|
-
admin_stock_transfer_item_serializer: 'Spree::Api::V3::Admin::StockTransferItemSerializer',
|
|
137
|
-
admin_supplier_serializer: 'Spree::Api::V3::Admin::SupplierSerializer',
|
|
138
|
-
admin_purchase_order_serializer: 'Spree::Api::V3::Admin::PurchaseOrderSerializer',
|
|
139
|
-
admin_purchase_order_item_serializer: 'Spree::Api::V3::Admin::PurchaseOrderItemSerializer',
|
|
140
|
-
admin_stock_receipt_serializer: 'Spree::Api::V3::Admin::StockReceiptSerializer',
|
|
141
|
-
admin_stock_receipt_item_serializer: 'Spree::Api::V3::Admin::StockReceiptItemSerializer',
|
|
142
64
|
admin_shipment_serializer: 'Spree::Api::V3::Admin::FulfillmentSerializer',
|
|
143
|
-
admin_fulfillment_serializer: 'Spree::Api::V3::Admin::FulfillmentSerializer',
|
|
144
|
-
admin_fulfillment_item_serializer: 'Spree::Api::V3::Admin::FulfillmentItemSerializer',
|
|
145
|
-
admin_delivery_serializer: 'Spree::Api::V3::Admin::DeliverySerializer',
|
|
146
|
-
admin_shipping_label_serializer: 'Spree::Api::V3::Admin::ShippingLabelSerializer',
|
|
147
|
-
admin_gift_card_serializer: 'Spree::Api::V3::Admin::GiftCardSerializer',
|
|
148
|
-
admin_gift_card_batch_serializer: 'Spree::Api::V3::Admin::GiftCardBatchSerializer',
|
|
149
|
-
admin_payment_serializer: 'Spree::Api::V3::Admin::PaymentSerializer',
|
|
150
|
-
admin_refund_serializer: 'Spree::Api::V3::Admin::RefundSerializer',
|
|
151
|
-
admin_return_reason_serializer: 'Spree::Api::V3::Admin::ReturnReasonSerializer',
|
|
152
|
-
admin_claim_reason_serializer: 'Spree::Api::V3::Admin::ClaimReasonSerializer',
|
|
153
|
-
admin_refund_reason_serializer: 'Spree::Api::V3::Admin::RefundReasonSerializer',
|
|
154
|
-
admin_order_cancellation_reason_serializer: 'Spree::Api::V3::Admin::OrderCancellationReasonSerializer',
|
|
155
|
-
admin_return_serializer: 'Spree::Api::V3::Admin::ReturnSerializer',
|
|
156
|
-
admin_return_line_item_serializer: 'Spree::Api::V3::Admin::ReturnLineItemSerializer',
|
|
157
|
-
admin_exchange_serializer: 'Spree::Api::V3::Admin::ExchangeSerializer',
|
|
158
|
-
admin_exchange_line_item_serializer: 'Spree::Api::V3::Admin::ExchangeLineItemSerializer',
|
|
159
|
-
admin_claim_serializer: 'Spree::Api::V3::Admin::ClaimSerializer',
|
|
160
|
-
admin_claim_line_item_serializer: 'Spree::Api::V3::Admin::ClaimLineItemSerializer',
|
|
161
|
-
admin_package_type_serializer: 'Spree::Api::V3::Admin::PackageTypeSerializer',
|
|
162
|
-
admin_policy_serializer: 'Spree::Api::V3::Admin::PolicySerializer',
|
|
163
|
-
admin_tax_category_serializer: 'Spree::Api::V3::Admin::TaxCategorySerializer',
|
|
164
|
-
admin_tax_rate_serializer: 'Spree::Api::V3::Admin::TaxRateSerializer',
|
|
165
|
-
admin_tax_identifier_serializer: 'Spree::Api::V3::Admin::TaxIdentifierSerializer',
|
|
166
|
-
|
|
167
|
-
company_serializer: 'Spree::Api::V3::CompanySerializer',
|
|
168
|
-
company_membership_serializer: 'Spree::Api::V3::CompanyMembershipSerializer',
|
|
169
|
-
company_invitation_serializer: 'Spree::Api::V3::CompanyInvitationSerializer',
|
|
170
|
-
admin_company_serializer: 'Spree::Api::V3::Admin::CompanySerializer',
|
|
171
|
-
admin_company_membership_serializer: 'Spree::Api::V3::Admin::CompanyMembershipSerializer',
|
|
172
|
-
admin_company_invitation_serializer: 'Spree::Api::V3::Admin::CompanyInvitationSerializer',
|
|
173
|
-
admin_catalog_serializer: 'Spree::Api::V3::Admin::CatalogSerializer',
|
|
174
|
-
admin_catalog_price_serializer: 'Spree::Api::V3::Admin::CatalogPriceSerializer',
|
|
175
|
-
admin_catalog_price_tier_serializer: 'Spree::Api::V3::Admin::CatalogPriceTierSerializer',
|
|
176
|
-
admin_catalog_product_serializer: 'Spree::Api::V3::Admin::CatalogProductSerializer',
|
|
177
|
-
admin_price_list_product_serializer: 'Spree::Api::V3::Admin::PriceListProductSerializer',
|
|
178
|
-
admin_catalog_assignment_serializer: 'Spree::Api::V3::Admin::CatalogAssignmentSerializer',
|
|
179
|
-
admin_catalog_quantity_rule_serializer: 'Spree::Api::V3::Admin::CatalogQuantityRuleSerializer',
|
|
180
|
-
admin_catalog_product_term_serializer: 'Spree::Api::V3::Admin::CatalogProductTermSerializer',
|
|
181
|
-
admin_catalog_order_minimum_serializer: 'Spree::Api::V3::Admin::CatalogOrderMinimumSerializer',
|
|
182
|
-
admin_tax_exemption_certificate_serializer: 'Spree::Api::V3::Admin::TaxExemptionCertificateSerializer',
|
|
183
|
-
admin_admin_user_serializer: 'Spree::Api::V3::Admin::AdminUserSerializer',
|
|
184
|
-
admin_actor_serializer: 'Spree::Api::V3::Admin::ActorSerializer',
|
|
185
|
-
admin_seller_team_member_serializer: 'Spree::Api::V3::Admin::SellerTeamMemberSerializer',
|
|
186
|
-
seller_serializer: 'Spree::Api::V3::SellerSerializer',
|
|
187
|
-
seller_profile_serializer: 'Spree::Api::V3::Seller::ProfileSerializer',
|
|
188
|
-
seller_policy_serializer: 'Spree::Api::V3::Seller::PolicySerializer',
|
|
189
|
-
seller_team_member_serializer: 'Spree::Api::V3::Seller::TeamMemberSerializer',
|
|
190
|
-
seller_account_serializer: 'Spree::Api::V3::Seller::AccountSerializer',
|
|
191
|
-
seller_invitation_serializer: 'Spree::Api::V3::Seller::InvitationSerializer',
|
|
192
|
-
seller_invitation_acceptance_link_serializer: 'Spree::Api::V3::Seller::InvitationAcceptanceLinkSerializer',
|
|
193
|
-
seller_product_serializer: 'Spree::Api::V3::Seller::ProductSerializer',
|
|
194
|
-
seller_product_type_serializer: 'Spree::Api::V3::Seller::ProductTypeSerializer',
|
|
195
|
-
seller_delivery_profile_serializer: 'Spree::Api::V3::Seller::DeliveryProfileSerializer',
|
|
196
|
-
seller_delivery_method_serializer: 'Spree::Api::V3::Seller::DeliveryMethodSerializer',
|
|
197
|
-
seller_delivery_method_rule_serializer: 'Spree::Api::V3::Seller::DeliveryMethodRuleSerializer',
|
|
198
|
-
seller_delivery_zone_serializer: 'Spree::Api::V3::Seller::DeliveryZoneSerializer',
|
|
199
|
-
seller_variant_serializer: 'Spree::Api::V3::Seller::VariantSerializer',
|
|
200
|
-
seller_media_serializer: 'Spree::Api::V3::Seller::MediaSerializer',
|
|
201
|
-
seller_stock_level_serializer: 'Spree::Api::V3::Seller::StockLevelSerializer',
|
|
202
|
-
seller_order_serializer: 'Spree::Api::V3::Seller::OrderSerializer',
|
|
203
|
-
seller_order_line_item_serializer: 'Spree::Api::V3::Seller::OrderLineItemSerializer',
|
|
204
|
-
seller_fulfillment_serializer: 'Spree::Api::V3::Seller::FulfillmentSerializer',
|
|
205
|
-
seller_fulfillment_item_serializer: 'Spree::Api::V3::Seller::FulfillmentItemSerializer',
|
|
206
|
-
seller_delivery_serializer: 'Spree::Api::V3::Seller::DeliverySerializer',
|
|
207
|
-
seller_delivery_rate_serializer: 'Spree::Api::V3::Seller::DeliveryRateSerializer',
|
|
208
|
-
seller_shipping_label_serializer: 'Spree::Api::V3::Seller::ShippingLabelSerializer',
|
|
209
|
-
seller_return_serializer: 'Spree::Api::V3::Seller::ReturnSerializer',
|
|
210
|
-
seller_return_line_item_serializer: 'Spree::Api::V3::Seller::ReturnLineItemSerializer',
|
|
211
|
-
seller_exchange_serializer: 'Spree::Api::V3::Seller::ExchangeSerializer',
|
|
212
|
-
seller_exchange_line_item_serializer: 'Spree::Api::V3::Seller::ExchangeLineItemSerializer',
|
|
213
|
-
seller_claim_serializer: 'Spree::Api::V3::Seller::ClaimSerializer',
|
|
214
|
-
seller_claim_line_item_serializer: 'Spree::Api::V3::Seller::ClaimLineItemSerializer',
|
|
215
|
-
seller_reason_serializer: 'Spree::Api::V3::Seller::ReasonSerializer',
|
|
216
|
-
seller_package_type_serializer: 'Spree::Api::V3::Seller::PackageTypeSerializer',
|
|
217
|
-
seller_stock_location_serializer: 'Spree::Api::V3::Seller::StockLocationSerializer',
|
|
218
|
-
seller_requirement_custom_field_serializer: 'Spree::Api::V3::Seller::RequirementCustomFieldSerializer',
|
|
219
|
-
seller_tax_identifier_serializer: 'Spree::Api::V3::Seller::TaxIdentifierSerializer',
|
|
220
|
-
seller_requirement_status_serializer: 'Spree::Api::V3::Seller::RequirementStatusSerializer',
|
|
221
|
-
seller_import_serializer: 'Spree::Api::V3::Seller::ImportSerializer',
|
|
222
|
-
seller_import_row_serializer: 'Spree::Api::V3::Seller::ImportRowSerializer',
|
|
223
|
-
seller_import_mapping_serializer: 'Spree::Api::V3::Seller::ImportMappingSerializer',
|
|
224
65
|
product_submission_serializer: 'Spree::Api::V3::Seller::ProductSubmissionSerializer',
|
|
225
|
-
admin_product_submission_serializer: 'Spree::Api::V3::Admin::ProductSubmissionSerializer',
|
|
226
|
-
seller_requirement_submission_serializer: 'Spree::Api::V3::Seller::RequirementSubmissionSerializer',
|
|
227
|
-
seller_export_serializer: 'Spree::Api::V3::Seller::ExportSerializer',
|
|
228
|
-
admin_seller_serializer: 'Spree::Api::V3::Admin::SellerSerializer',
|
|
229
|
-
admin_seller_requirement_serializer: 'Spree::Api::V3::Admin::SellerRequirementSerializer',
|
|
230
|
-
admin_seller_requirement_submission_serializer: 'Spree::Api::V3::Admin::SellerRequirementSubmissionSerializer',
|
|
231
|
-
admin_seller_requirement_status_serializer: 'Spree::Api::V3::Admin::SellerRequirementStatusSerializer',
|
|
232
|
-
admin_commission_rate_serializer: 'Spree::Api::V3::Admin::CommissionRateSerializer',
|
|
233
|
-
admin_commission_rule_serializer: 'Spree::Api::V3::Admin::CommissionRuleSerializer',
|
|
234
|
-
admin_commission_line_serializer: 'Spree::Api::V3::Admin::CommissionLineSerializer',
|
|
235
|
-
admin_seller_transfer_serializer: 'Spree::Api::V3::Admin::SellerTransferSerializer',
|
|
236
|
-
admin_seller_payout_serializer: 'Spree::Api::V3::Admin::SellerPayoutSerializer',
|
|
237
|
-
admin_seller_balance_serializer: 'Spree::Api::V3::Admin::SellerBalanceSerializer',
|
|
238
|
-
admin_payment_split_serializer: 'Spree::Api::V3::Admin::PaymentSplitSerializer',
|
|
239
|
-
seller_transfer_serializer: 'Spree::Api::V3::Seller::TransferSerializer',
|
|
240
|
-
seller_payout_serializer: 'Spree::Api::V3::Seller::PayoutSerializer',
|
|
241
|
-
seller_balance_serializer: 'Spree::Api::V3::Seller::BalanceSerializer',
|
|
242
|
-
seller_payment_split_serializer: 'Spree::Api::V3::Seller::PaymentSplitSerializer',
|
|
243
|
-
admin_address_serializer: 'Spree::Api::V3::Admin::AddressSerializer',
|
|
244
|
-
admin_channel_serializer: 'Spree::Api::V3::Admin::ChannelSerializer',
|
|
245
|
-
admin_order_routing_rule_serializer: 'Spree::Api::V3::Admin::OrderRoutingRuleSerializer',
|
|
246
|
-
admin_product_publication_serializer: 'Spree::Api::V3::Admin::ProductPublicationSerializer',
|
|
247
|
-
admin_market_serializer: 'Spree::Api::V3::Admin::MarketSerializer',
|
|
248
66
|
admin_shipping_method_serializer: 'Spree::Api::V3::Admin::DeliveryMethodSerializer',
|
|
249
|
-
|
|
250
|
-
admin_delivery_method_service_serializer: 'Spree::Api::V3::Admin::DeliveryMethodServiceSerializer',
|
|
251
|
-
admin_stock_location_serializer: 'Spree::Api::V3::Admin::StockLocationSerializer',
|
|
252
|
-
admin_stock_reservation_serializer: 'Spree::Api::V3::Admin::StockReservationSerializer',
|
|
253
|
-
admin_shipping_rate_serializer: 'Spree::Api::V3::Admin::DeliveryRateSerializer',
|
|
254
|
-
admin_delivery_rate_serializer: 'Spree::Api::V3::Admin::DeliveryRateSerializer',
|
|
255
|
-
admin_freight_summary_serializer: 'Spree::Api::V3::Admin::FreightSummarySerializer',
|
|
256
|
-
admin_freight_summary_line_serializer: 'Spree::Api::V3::Admin::FreightSummaryLineSerializer',
|
|
257
|
-
admin_payment_method_serializer: 'Spree::Api::V3::Admin::PaymentMethodSerializer',
|
|
258
|
-
admin_credit_card_serializer: 'Spree::Api::V3::Admin::CreditCardSerializer',
|
|
259
|
-
admin_store_credit_serializer: 'Spree::Api::V3::Admin::StoreCreditSerializer',
|
|
260
|
-
admin_store_credit_event_serializer: 'Spree::Api::V3::Admin::StoreCreditEventSerializer',
|
|
261
|
-
admin_customer_group_serializer: 'Spree::Api::V3::Admin::CustomerGroupSerializer',
|
|
262
|
-
admin_payment_source_serializer: 'Spree::Api::V3::Admin::PaymentSourceSerializer',
|
|
263
|
-
admin_digital_asset_serializer: 'Spree::Api::V3::Admin::DigitalAssetSerializer',
|
|
264
|
-
admin_digital_link_serializer: 'Spree::Api::V3::Admin::DigitalLinkSerializer',
|
|
265
|
-
admin_store_serializer: 'Spree::Api::V3::Admin::StoreSerializer',
|
|
266
|
-
admin_setup_task_serializer: 'Spree::Api::V3::Admin::SetupTaskSerializer',
|
|
267
|
-
admin_api_key_serializer: 'Spree::Api::V3::Admin::ApiKeySerializer',
|
|
268
|
-
admin_allowed_origin_serializer: 'Spree::Api::V3::Admin::AllowedOriginSerializer',
|
|
269
|
-
admin_webhook_endpoint_serializer: 'Spree::Api::V3::Admin::WebhookEndpointSerializer',
|
|
270
|
-
admin_webhook_delivery_serializer: 'Spree::Api::V3::Admin::WebhookDeliverySerializer',
|
|
271
|
-
admin_invitation_serializer: 'Spree::Api::V3::Admin::InvitationSerializer',
|
|
272
|
-
admin_invitation_acceptance_link_serializer: 'Spree::Api::V3::Admin::InvitationAcceptanceLinkSerializer',
|
|
273
|
-
admin_role_serializer: 'Spree::Api::V3::Admin::RoleSerializer',
|
|
274
|
-
admin_permission_serializer: 'Spree::Api::V3::Admin::PermissionSerializer',
|
|
275
|
-
admin_export_serializer: 'Spree::Api::V3::Admin::ExportSerializer',
|
|
276
|
-
admin_saved_report_serializer: 'Spree::Api::V3::Admin::SavedReportSerializer',
|
|
277
|
-
admin_import_serializer: 'Spree::Api::V3::Admin::ImportSerializer',
|
|
278
|
-
admin_import_row_serializer: 'Spree::Api::V3::Admin::ImportRowSerializer',
|
|
279
|
-
admin_import_mapping_serializer: 'Spree::Api::V3::Admin::ImportMappingSerializer',
|
|
280
|
-
admin_promotion_serializer: 'Spree::Api::V3::Admin::PromotionSerializer',
|
|
281
|
-
admin_promotion_action_serializer: 'Spree::Api::V3::Admin::PromotionActionSerializer',
|
|
282
|
-
admin_promotion_rule_serializer: 'Spree::Api::V3::Admin::PromotionRuleSerializer',
|
|
283
|
-
admin_coupon_code_serializer: 'Spree::Api::V3::Admin::CouponCodeSerializer',
|
|
284
|
-
admin_price_adjustment_tier_serializer: 'Spree::Api::V3::Admin::PriceAdjustmentTierSerializer',
|
|
285
|
-
admin_price_list_serializer: 'Spree::Api::V3::Admin::PriceListSerializer',
|
|
286
|
-
admin_price_rule_serializer: 'Spree::Api::V3::Admin::PriceRuleSerializer',
|
|
287
|
-
admin_resource_translations_serializer: 'Spree::Api::V3::Admin::ResourceTranslationsSerializer',
|
|
67
|
+
admin_shipping_rate_serializer: 'Spree::Api::V3::Admin::DeliveryRateSerializer'
|
|
288
68
|
}
|
|
289
69
|
|
|
290
70
|
include Spree::DependenciesHelper
|
|
@@ -2,13 +2,24 @@ module Spree
|
|
|
2
2
|
module Api
|
|
3
3
|
module Middleware
|
|
4
4
|
class RequestSizeLimit
|
|
5
|
+
# `POST /files` takes a file's bytes in the request itself, so it is
|
|
6
|
+
# held to the multipart upload limit instead, plus room for the other
|
|
7
|
+
# form fields.
|
|
8
|
+
FILE_UPLOAD_PATH = %r{\A/api/v3/(admin|seller)/files/?\z}
|
|
9
|
+
MULTIPART_ENVELOPE = 64.kilobytes
|
|
10
|
+
|
|
5
11
|
def initialize(app, limit: nil)
|
|
6
12
|
@app = app
|
|
7
13
|
@limit = limit
|
|
8
14
|
end
|
|
9
15
|
|
|
10
16
|
def call(env)
|
|
11
|
-
if
|
|
17
|
+
if file_upload?(env) && chunked?(env)
|
|
18
|
+
# A chunked body has no length to check here, and these bytes pass
|
|
19
|
+
# through the application.
|
|
20
|
+
body = { error: { code: 'request_too_large', message: 'Send the file with a Content-Length header' } }
|
|
21
|
+
[411, { 'Content-Type' => 'application/json' }, [body.to_json]]
|
|
22
|
+
elsif api_request?(env) && content_length_exceeded?(env)
|
|
12
23
|
body = { error: { code: 'request_too_large', message: 'Request body too large' } }
|
|
13
24
|
[413, { 'Content-Type' => 'application/json' }, [body.to_json]]
|
|
14
25
|
else
|
|
@@ -24,12 +35,22 @@ module Spree
|
|
|
24
35
|
|
|
25
36
|
def content_length_exceeded?(env)
|
|
26
37
|
content_length = env['CONTENT_LENGTH'].to_i
|
|
27
|
-
content_length > max_body_size
|
|
38
|
+
content_length > max_body_size(env)
|
|
28
39
|
end
|
|
29
40
|
|
|
30
|
-
def max_body_size
|
|
41
|
+
def max_body_size(env)
|
|
42
|
+
return Spree::Config[:max_multipart_upload_size] + MULTIPART_ENVELOPE if file_upload?(env)
|
|
43
|
+
|
|
31
44
|
@limit || Spree::Api::Config[:max_request_body_size]
|
|
32
45
|
end
|
|
46
|
+
|
|
47
|
+
def chunked?(env)
|
|
48
|
+
env['CONTENT_LENGTH'].nil? && env['HTTP_TRANSFER_ENCODING'].to_s.include?('chunked')
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def file_upload?(env)
|
|
52
|
+
env['REQUEST_METHOD'] == 'POST' && FILE_UPLOAD_PATH.match?(env['PATH_INFO'])
|
|
53
|
+
end
|
|
33
54
|
end
|
|
34
55
|
end
|
|
35
56
|
end
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module OpenAPI
|
|
4
|
+
# Turns one list endpoint's filter table into what a reader of the API
|
|
5
|
+
# reference sees: `q[search]` and the other scopes as named query
|
|
6
|
+
# parameters, and the attribute filters as a table rendered above the
|
|
7
|
+
# endpoint (Mintlify's `x-mint.content`).
|
|
8
|
+
class FilterDocumentation
|
|
9
|
+
KIND_LABELS = {
|
|
10
|
+
'text' => 'Text', 'decimal' => 'Amount', 'integer' => 'Number', 'date' => 'Date',
|
|
11
|
+
'datetime' => 'Date and time', 'id' => 'Prefixed ID', 'type' => 'Type', 'boolean' => 'True or false'
|
|
12
|
+
}.freeze
|
|
13
|
+
|
|
14
|
+
SCOPE_SCHEMAS = {
|
|
15
|
+
'boolean' => { type: :boolean }, 'integer' => { type: :integer }, 'decimal' => { type: :number }
|
|
16
|
+
}.freeze
|
|
17
|
+
|
|
18
|
+
# Raised when an endpoint offers `q[search]` and nothing says what it matches.
|
|
19
|
+
class MissingSearchDescription < StandardError; end
|
|
20
|
+
|
|
21
|
+
# @param endpoint [Spree::Api::V3::FilterTable::Endpoint]
|
|
22
|
+
# @param querying_path [String] the docs page explaining predicates
|
|
23
|
+
# @param search [String, nil] what `q[search]` matches, for a model
|
|
24
|
+
# whose search is not declared with `search_by`
|
|
25
|
+
# @param scopes [Hash{String => String}] descriptions for other scopes
|
|
26
|
+
def initialize(endpoint, querying_path:, search: nil, scopes: {})
|
|
27
|
+
@endpoint = endpoint
|
|
28
|
+
@table = endpoint.table
|
|
29
|
+
@querying_path = querying_path
|
|
30
|
+
@search = search
|
|
31
|
+
@scopes = scopes.stringify_keys
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# @return [Array<Hash>] rswag parameter definitions, `q[search]` first
|
|
35
|
+
def parameters
|
|
36
|
+
names = @table.scopes.keys.sort_by { |scope| scope == 'search' ? '' : scope }
|
|
37
|
+
names.map { |scope| scope_parameter(scope, @table.scopes[scope]) }
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# @return [String] MDX for the endpoint page
|
|
41
|
+
def content
|
|
42
|
+
lines = ['## Filters', '']
|
|
43
|
+
lines << "Filter with `q[<attribute>_<predicate>]=value`, for example `#{example_key}`. Send a list as " \
|
|
44
|
+
"`q[<attribute>_in][]=a&q[<attribute>_in][]=b`. [How filters work](#{@querying_path})."
|
|
45
|
+
lines << ''
|
|
46
|
+
lines.concat(attribute_rows(@table))
|
|
47
|
+
|
|
48
|
+
associations = association_rows
|
|
49
|
+
if associations.any?
|
|
50
|
+
lines << '' << '<Accordion title="Filters through associations">' << ''
|
|
51
|
+
lines << 'Prefix an associated record\'s attribute with the association, as in ' \
|
|
52
|
+
"`q[#{associations.first[0]}id_eq]`. The same predicates apply." << ''
|
|
53
|
+
lines << '| Prefix | Attributes |' << '|---|---|'
|
|
54
|
+
associations.each { |prefix, attributes| lines << "| `#{prefix}` | #{attributes.map { |name| "`#{name}`" }.join(', ')} |" }
|
|
55
|
+
lines << '' << '</Accordion>'
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
if @endpoint.to_h['custom_fields']
|
|
59
|
+
lines << '' << "Also filters and sorts on the store's searchable custom fields, as " \
|
|
60
|
+
'`q[cf_<namespace>_<key>_<predicate>]` and `sort=cf_<namespace>_<key>`.'
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
sortable = @endpoint.sortable - @table.aliased_attributes
|
|
64
|
+
if sortable.any?
|
|
65
|
+
lines << '' << "**Sort by:** #{sortable.map { |field| "`#{field}`" }.join(', ')}. " \
|
|
66
|
+
'Prefix a field with `-` to sort descending.'
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
lines.join("\n")
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
private
|
|
73
|
+
|
|
74
|
+
def scope_parameter(scope, type)
|
|
75
|
+
list = type.is_a?(Hash) || type.is_a?(Array)
|
|
76
|
+
{
|
|
77
|
+
name: list ? "q[#{scope}][]" : "q[#{scope}]",
|
|
78
|
+
in: :query,
|
|
79
|
+
required: false,
|
|
80
|
+
schema: scope_schema(type),
|
|
81
|
+
description: scope == 'search' ? search_description : @scopes.fetch(scope) { default_scope_description(scope, type) }
|
|
82
|
+
}
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def scope_schema(type)
|
|
86
|
+
case type
|
|
87
|
+
when Hash then { type: :array, items: scope_schema(type['list']) }
|
|
88
|
+
when Array then { type: :array, items: scope_schema(type.first), minItems: type.size, maxItems: type.size }
|
|
89
|
+
else SCOPE_SCHEMAS.fetch(type, { type: :string })
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def search_description
|
|
94
|
+
return @search if @search
|
|
95
|
+
|
|
96
|
+
attributes = @table.model.search_attributes
|
|
97
|
+
raise MissingSearchDescription, "#{@table.model.name}.search has no description; pass `search:` to filter_parameters_for" if attributes.empty?
|
|
98
|
+
|
|
99
|
+
"Matches any of #{attributes.map { |path| path.tr('_', ' ') }.to_sentence} (partial, case-insensitive)."
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def default_scope_description(scope, type)
|
|
103
|
+
type == 'boolean' ? "Set to `true` to apply `#{scope}`." : "Applies `#{scope}` to the given value."
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def attribute_rows(table)
|
|
107
|
+
rows = ['| Attribute | Kind | Predicates |', '|---|---|---|']
|
|
108
|
+
table.attributes.except(*table.aliased_attributes).each do |attribute, kind|
|
|
109
|
+
label = kind.is_a?(Hash) ? "One of #{kind['enum'].map { |value| "`#{value}`" }.join(', ')}" : KIND_LABELS.fetch(kind)
|
|
110
|
+
predicates = Spree::Api::V3::FilterPredicates::BY_KIND.fetch(kind.is_a?(Hash) ? 'enum' : kind)
|
|
111
|
+
rows << "| `#{attribute}` | #{label} | #{predicates.map { |predicate| "`#{predicate}`" }.join(' ')} |"
|
|
112
|
+
end
|
|
113
|
+
rows
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def association_rows
|
|
117
|
+
visible = ->(table) { table.attributes.keys - table.aliased_attributes }
|
|
118
|
+
@table.associations.flat_map do |name, associated|
|
|
119
|
+
nested = associated.associations.reject { |_, table| table.model == @table.model }
|
|
120
|
+
[["#{name}_", visible.(associated)]] + nested.map { |hop, table| ["#{name}_#{hop}_", visible.(table)] }
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
def example_key
|
|
125
|
+
texts = @table.attributes.select { |_, value| value == 'text' }
|
|
126
|
+
attribute = (%w[number name code email] & texts.keys).first || texts.keys.first
|
|
127
|
+
kind = 'text' if attribute
|
|
128
|
+
attribute, kind = @table.attributes.first if attribute.nil?
|
|
129
|
+
return 'q[id_eq]=…' if attribute.nil?
|
|
130
|
+
|
|
131
|
+
kind == 'text' ? "q[#{attribute}_cont]=…" : "q[#{attribute}_eq]=…"
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
end
|