spree_api 6.0.0.beta4 → 6.0.0.rc1
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 -31
- data/app/controllers/concerns/spree/api/v3/admin/email_template_lookup.rb +139 -0
- data/app/controllers/concerns/spree/api/v3/admin/store_context.rb +1 -1
- data/app/controllers/concerns/spree/api/v3/admin/subclassed_resource.rb +1 -1
- data/app/controllers/concerns/spree/api/v3/cart_resolvable.rb +7 -0
- data/app/controllers/concerns/spree/api/v3/channel_resolution.rb +2 -2
- data/app/controllers/concerns/spree/api/v3/current_password_confirmation.rb +1 -1
- data/app/controllers/concerns/spree/api/v3/error_handler.rb +7 -2
- 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/order_lock.rb +2 -2
- data/app/controllers/concerns/spree/api/v3/orders/delivery_actions.rb +1 -5
- data/app/controllers/concerns/spree/api/v3/orders/fulfillment_actions.rb +2 -10
- data/app/controllers/concerns/spree/api/v3/orders/post_sale_actions.rb +2 -10
- data/app/controllers/concerns/spree/api/v3/orders/shipping_label_actions.rb +4 -8
- data/app/controllers/concerns/spree/api/v3/permission_serialization.rb +9 -1
- 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/spree/api/v3/admin/admin_users_controller.rb +0 -5
- data/app/controllers/spree/api/v3/admin/api_keys_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/catalogs/order_minimums_controller.rb +0 -6
- data/app/controllers/spree/api/v3/admin/catalogs/quantity_rules_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/catalogs_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/channels_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/collections/products_controller.rb +1 -2
- data/app/controllers/spree/api/v3/admin/commission_rates_controller.rb +2 -2
- data/app/controllers/spree/api/v3/admin/companies/addresses_controller.rb +0 -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 +0 -4
- data/app/controllers/spree/api/v3/admin/companies/tax_exemption_certificates_controller.rb +1 -9
- data/app/controllers/spree/api/v3/admin/companies/tax_identifiers_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/companies_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/countries_controller.rb +1 -1
- 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 +9 -1
- data/app/controllers/spree/api/v3/admin/custom_fields_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/customer_groups_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/customers/addresses_controller.rb +0 -4
- 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 +0 -4
- data/app/controllers/spree/api/v3/admin/customers_controller.rb +2 -2
- data/app/controllers/spree/api/v3/admin/delivery_methods/rules_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/delivery_methods_controller.rb +3 -5
- data/app/controllers/spree/api/v3/admin/delivery_profiles_controller.rb +1 -6
- data/app/controllers/spree/api/v3/admin/email_templates/drafts_controller.rb +40 -0
- data/app/controllers/spree/api/v3/admin/email_templates/previews_controller.rb +30 -0
- data/app/controllers/spree/api/v3/admin/email_templates/publications_controller.rb +30 -0
- data/app/controllers/spree/api/v3/admin/email_templates/restorations_controller.rb +34 -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 +40 -0
- data/app/controllers/spree/api/v3/admin/email_templates_controller.rb +46 -0
- data/app/controllers/spree/api/v3/admin/imports_controller.rb +1 -2
- data/app/controllers/spree/api/v3/admin/invitations_controller.rb +0 -7
- data/app/controllers/spree/api/v3/admin/me_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/media_library_controller.rb +5 -5
- data/app/controllers/spree/api/v3/admin/order_routing_rules_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/orders/deliveries_controller.rb +1 -5
- data/app/controllers/spree/api/v3/admin/orders/discount_codes_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/orders/discounts_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/orders/fulfillments_controller.rb +18 -16
- data/app/controllers/spree/api/v3/admin/orders/gift_cards_controller.rb +3 -3
- data/app/controllers/spree/api/v3/admin/orders/labels_controller.rb +2 -10
- data/app/controllers/spree/api/v3/admin/orders/payments_controller.rb +2 -14
- data/app/controllers/spree/api/v3/admin/orders/refunds_controller.rb +1 -5
- data/app/controllers/spree/api/v3/admin/orders_controller.rb +3 -3
- data/app/controllers/spree/api/v3/admin/password_resets_controller.rb +9 -7
- data/app/controllers/spree/api/v3/admin/price_lists_controller.rb +6 -53
- data/app/controllers/spree/api/v3/admin/prices_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/products/digital_assets_controller.rb +2 -6
- data/app/controllers/spree/api/v3/admin/products/variants_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/products_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/promotion_actions_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/promotion_rules_controller.rb +0 -4
- data/app/controllers/spree/api/v3/admin/purchase_orders_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/resource_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/seller_payouts_controller.rb +1 -9
- data/app/controllers/spree/api/v3/admin/seller_requirement_submissions_controller.rb +2 -10
- 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 +2 -10
- data/app/controllers/spree/api/v3/admin/setup_controller.rb +3 -11
- data/app/controllers/spree/api/v3/admin/stock_transfers_controller.rb +1 -1
- data/app/controllers/spree/api/v3/admin/store_controller.rb +6 -1
- data/app/controllers/spree/api/v3/admin/tags_controller.rb +8 -5
- data/app/controllers/spree/api/v3/admin/webhook_endpoints_controller.rb +17 -12
- data/app/controllers/spree/api/v3/admin/webhook_events_controller.rb +25 -0
- data/app/controllers/spree/api/v3/base_controller.rb +10 -0
- data/app/controllers/spree/api/v3/resource_controller.rb +44 -1
- data/app/controllers/spree/api/v3/seller/auth_controller.rb +2 -2
- data/app/controllers/spree/api/v3/seller/countries_controller.rb +1 -1
- data/app/controllers/spree/api/v3/seller/exports_controller.rb +3 -3
- data/app/controllers/spree/api/v3/seller/invitation_acceptances_controller.rb +3 -3
- data/app/controllers/spree/api/v3/seller/invitations_controller.rb +1 -1
- data/app/controllers/spree/api/v3/seller/me_controller.rb +1 -1
- data/app/controllers/spree/api/v3/seller/orders/labels_controller.rb +1 -1
- data/app/controllers/spree/api/v3/seller/password_resets_controller.rb +10 -11
- data/app/controllers/spree/api/v3/seller/products_controller.rb +2 -1
- data/app/controllers/spree/api/v3/seller/requirement_submissions_controller.rb +1 -1
- data/app/controllers/spree/api/v3/seller/team_controller.rb +1 -1
- data/app/controllers/spree/api/v3/store/carts/discount_codes_controller.rb +1 -1
- data/app/controllers/spree/api/v3/store/carts/fulfillments_controller.rb +3 -11
- data/app/controllers/spree/api/v3/store/carts/gift_cards_controller.rb +5 -3
- data/app/controllers/spree/api/v3/store/carts/items_controller.rb +6 -2
- data/app/controllers/spree/api/v3/store/carts/payment_sessions_controller.rb +1 -1
- data/app/controllers/spree/api/v3/store/carts/payments_controller.rb +5 -3
- data/app/controllers/spree/api/v3/store/carts/po_documents_controller.rb +2 -2
- data/app/controllers/spree/api/v3/store/carts/store_credits_controller.rb +2 -0
- data/app/controllers/spree/api/v3/store/carts_controller.rb +9 -6
- data/app/controllers/spree/api/v3/store/companies/addresses_controller.rb +0 -4
- data/app/controllers/spree/api/v3/store/companies/invitations_controller.rb +1 -5
- data/app/controllers/spree/api/v3/store/company_invitations_controller.rb +1 -1
- data/app/controllers/spree/api/v3/store/customer/addresses_controller.rb +0 -4
- 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 +0 -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 +8 -6
- data/app/controllers/spree/api/v3/store/customer/payment_setup_sessions_controller.rb +0 -4
- data/app/controllers/spree/api/v3/store/customer/store_credits_controller.rb +0 -5
- 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 +5 -14
- data/app/controllers/spree/api/v3/store/orders/claims_controller.rb +1 -5
- data/app/controllers/spree/api/v3/store/orders/returns_controller.rb +1 -5
- data/app/controllers/spree/api/v3/store/wishlist_items_controller.rb +0 -4
- data/app/serializers/spree/api/v3/admin/address_serializer.rb +5 -7
- data/app/serializers/spree/api/v3/admin/api_key_serializer.rb +2 -6
- 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 +1 -7
- 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 +5 -6
- data/app/serializers/spree/api/v3/admin/claim_reason_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/commission_rule_serializer.rb +1 -3
- 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 +2 -10
- data/app/serializers/spree/api/v3/admin/data_request_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/admin/delivery_method_serializer.rb +8 -22
- data/app/serializers/spree/api/v3/admin/delivery_origin_group_serializer.rb +1 -3
- 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/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_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/export_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/fulfillment_item_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/fulfillment_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/gift_card_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/line_item_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/admin/market_serializer.rb +4 -2
- data/app/serializers/spree/api/v3/admin/media_serializer.rb +1 -3
- 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 +3 -9
- data/app/serializers/spree/api/v3/admin/order_routing_rule_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/order_serializer.rb +5 -15
- 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 -1
- data/app/serializers/spree/api/v3/admin/payment_serializer.rb +2 -7
- data/app/serializers/spree/api/v3/admin/permission_serializer.rb +4 -4
- data/app/serializers/spree/api/v3/admin/price_rule_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/product_serializer.rb +2 -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 +1 -3
- data/app/serializers/spree/api/v3/admin/promotion_rule_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/purchase_order_item_serializer.rb +2 -15
- data/app/serializers/spree/api/v3/admin/purchase_order_serializer.rb +2 -15
- data/app/serializers/spree/api/v3/admin/refund_reason_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/refund_serializer.rb +4 -1
- data/app/serializers/spree/api/v3/admin/return_line_item_serializer.rb +1 -0
- data/app/serializers/spree/api/v3/admin/return_reason_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/return_serializer.rb +3 -11
- data/app/serializers/spree/api/v3/admin/saved_report_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/seller_payout_serializer.rb +4 -2
- 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 +5 -15
- data/app/serializers/spree/api/v3/admin/seller_transfer_serializer.rb +4 -2
- data/app/serializers/spree/api/v3/admin/shipping_label_serializer.rb +6 -19
- data/app/serializers/spree/api/v3/admin/stock_level_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/stock_location_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/stock_movement_serializer.rb +1 -3
- 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 +1 -3
- data/app/serializers/spree/api/v3/admin/store_credit_serializer.rb +4 -18
- data/app/serializers/spree/api/v3/admin/store_serializer.rb +24 -6
- data/app/serializers/spree/api/v3/admin/supplier_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/tax_exemption_certificate_serializer.rb +3 -9
- data/app/serializers/spree/api/v3/admin/tax_identifier_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/admin/tax_line_serializer.rb +5 -1
- data/app/serializers/spree/api/v3/admin/tax_rate_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/admin/variant_serializer.rb +6 -7
- 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 +20 -0
- data/app/serializers/spree/api/v3/cart_serializer.rb +17 -45
- data/app/serializers/spree/api/v3/category_serializer.rb +5 -15
- data/app/serializers/spree/api/v3/claim_line_item_serializer.rb +11 -26
- data/app/serializers/spree/api/v3/claim_serializer.rb +2 -15
- 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/custom_field_serializer.rb +1 -2
- data/app/serializers/spree/api/v3/delivery_rate_serializer.rb +3 -23
- 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 +1 -12
- data/app/serializers/spree/api/v3/exchange_line_item_serializer.rb +9 -27
- data/app/serializers/spree/api/v3/exchange_serializer.rb +2 -15
- 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/fulfillment_serializer.rb +4 -11
- data/app/serializers/spree/api/v3/gift_card_batch_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/gift_card_serializer.rb +5 -17
- data/app/serializers/spree/api/v3/import_row_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/import_serializer.rb +3 -14
- data/app/serializers/spree/api/v3/invitation_serializer.rb +2 -19
- data/app/serializers/spree/api/v3/line_item_serializer.rb +6 -20
- data/app/serializers/spree/api/v3/media_event_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/media_serializer.rb +1 -3
- 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 +2 -23
- data/app/serializers/spree/api/v3/order_serializer.rb +12 -38
- 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 +3 -9
- 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 +1 -3
- data/app/serializers/spree/api/v3/price_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/product_publication_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/product_serializer.rb +7 -21
- 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 +3 -11
- data/app/serializers/spree/api/v3/return_line_item_serializer.rb +12 -19
- data/app/serializers/spree/api/v3/return_serializer.rb +6 -15
- data/app/serializers/spree/api/v3/saved_report_event_serializer.rb +23 -0
- data/app/serializers/spree/api/v3/seller/delivery_method_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/seller/delivery_rate_serializer.rb +1 -7
- 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_serializer.rb +1 -3
- 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/invitation_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/seller/order_line_item_serializer.rb +7 -13
- data/app/serializers/spree/api/v3/seller/order_serializer.rb +4 -25
- data/app/serializers/spree/api/v3/seller/payout_serializer.rb +4 -2
- data/app/serializers/spree/api/v3/seller/product_serializer.rb +1 -7
- data/app/serializers/spree/api/v3/seller/product_submission_serializer.rb +1 -21
- data/app/serializers/spree/api/v3/seller/profile_serializer.rb +2 -6
- data/app/serializers/spree/api/v3/seller/requirement_status_serializer.rb +3 -9
- data/app/serializers/spree/api/v3/seller/return_serializer.rb +3 -15
- data/app/serializers/spree/api/v3/seller/transfer_serializer.rb +4 -2
- 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_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 -11
- data/app/serializers/spree/api/v3/store_credit_serializer.rb +2 -24
- data/app/serializers/spree/api/v3/supplier_event_serializer.rb +6 -4
- data/app/serializers/spree/api/v3/tax_line_serializer.rb +10 -20
- data/app/serializers/spree/api/v3/variant_serializer.rb +7 -21
- 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/subscribers/spree/webhook_event_subscriber.rb +3 -10
- data/config/initializers/pagy.rb +1 -1
- data/config/initializers/typelizer.rb +6 -8
- 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 +49 -99
- data/lib/spree/api/dependencies.rb +53 -274
- data/lib/spree/api/openapi/schema_helper.rb +1 -1
- data/lib/spree/api/typelizer_generation.rb +35 -0
- data/lib/spree/api/webhook_event_types.rb +140 -0
- data/lib/spree/api.rb +0 -2
- metadata +71 -36
- data/config/i18n-tasks.yml +0 -40
- data/config/initializers/alba.rb +0 -5
|
@@ -3,288 +3,67 @@ 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].freeze
|
|
22
|
+
|
|
23
|
+
ADMIN_SERIALIZERS =
|
|
24
|
+
%i[country state 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 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].freeze
|
|
46
|
+
|
|
47
|
+
SELLER_SERIALIZERS =
|
|
48
|
+
%i[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].freeze
|
|
54
|
+
|
|
6
55
|
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',
|
|
56
|
+
**STORE_SERIALIZERS.to_h { |name| [:"#{name}_serializer", "Spree::Api::V3::#{name.to_s.camelize}Serializer"] },
|
|
57
|
+
**ADMIN_SERIALIZERS.to_h { |name| [:"admin_#{name}_serializer", "Spree::Api::V3::Admin::#{name.to_s.camelize}Serializer"] },
|
|
58
|
+
**SELLER_SERIALIZERS.to_h { |name| [:"seller_#{name}_serializer", "Spree::Api::V3::Seller::#{name.to_s.camelize}Serializer"] },
|
|
26
59
|
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
60
|
wished_item_serializer: 'Spree::Api::V3::WishlistItemSerializer',
|
|
41
|
-
payment_method_serializer: 'Spree::Api::V3::PaymentMethodSerializer',
|
|
42
61
|
shipping_method_serializer: 'Spree::Api::V3::DeliveryMethodSerializer',
|
|
43
62
|
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
63
|
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
64
|
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
65
|
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',
|
|
66
|
+
admin_shipping_rate_serializer: 'Spree::Api::V3::Admin::DeliveryRateSerializer'
|
|
288
67
|
}
|
|
289
68
|
|
|
290
69
|
include Spree::DependenciesHelper
|
|
@@ -92,7 +92,7 @@ module Spree
|
|
|
92
92
|
properties: {
|
|
93
93
|
allow: { type: :boolean, description: 'true for `can`, false for `cannot`' },
|
|
94
94
|
actions: { type: :array, items: { type: :string }, description: 'Action names, e.g. ["read", "update"] or ["manage"]' },
|
|
95
|
-
subjects: { type: :array, items: { type: :string }, description: 'Subject
|
|
95
|
+
subjects: { type: :array, items: { type: :string }, description: 'Subject short names, e.g. ["product"] or ["all"]' },
|
|
96
96
|
has_conditions: { type: :boolean, description: 'True if the server-side rule has per-record conditions. The SPA shows the action optimistically and handles 403 from the API.' }
|
|
97
97
|
},
|
|
98
98
|
required: %w[allow actions subjects has_conditions]
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
# Generates every SDK's TypeScript types from the serializers, the email
|
|
4
|
+
# template types included. Runs inside spree_emails' test app, the one
|
|
5
|
+
# place where the API's and the email serializers are all loaded: running
|
|
6
|
+
# it with any serializer missing would delete that serializer's types.
|
|
7
|
+
module TypelizerGeneration
|
|
8
|
+
# @param serializer_dirs [Array<String, Pathname>] directories to load before generating
|
|
9
|
+
def self.call(serializer_dirs)
|
|
10
|
+
serializer_dirs.each { |dir| Rails.autoloaders.main.eager_load_dir(dir.to_s) }
|
|
11
|
+
|
|
12
|
+
require 'typelizer/generator'
|
|
13
|
+
Typelizer::Generator.call(force: true)
|
|
14
|
+
|
|
15
|
+
# `interface` rather than `type`, so SDK consumers can extend generated
|
|
16
|
+
# types through declaration merging.
|
|
17
|
+
api_root = Spree::Api::Engine.root
|
|
18
|
+
[api_root.join('../../packages/sdk/src/types/generated'), api_root.join('../../packages/admin-sdk/src/types/generated'),
|
|
19
|
+
api_root.join('../../packages/admin-sdk/src/types/generated/emails')].each do |dir|
|
|
20
|
+
Dir[File.join(dir, '*.ts')].each do |file|
|
|
21
|
+
next if File.basename(file) == 'index.ts'
|
|
22
|
+
|
|
23
|
+
content = File.read(file)
|
|
24
|
+
updated = content.gsub(/^type (\w+) = \{/, 'interface \1 {')
|
|
25
|
+
File.write(file, updated) if updated != content
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# The typed webhook events in @spree/sdk, from the event catalog.
|
|
30
|
+
require Spree::Api::Engine.root.join('lib/spree/api/webhook_event_types').to_s
|
|
31
|
+
Spree::Api::WebhookEventTypes.new.write!(api_root.join('../..'))
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
# Renders the event catalog ({Spree::Events.catalog}) into the typed event
|
|
4
|
+
# map `@spree/sdk/webhooks` exports and the matching Zod schema map, so a
|
|
5
|
+
# webhook consumer's `event.name` check narrows `event.data` to the record
|
|
6
|
+
# the event carries.
|
|
7
|
+
#
|
|
8
|
+
# Run by `rake typelizer:generate`; `webhook_event_types_spec.rb` fails when
|
|
9
|
+
# the committed files no longer match the catalog.
|
|
10
|
+
class WebhookEventTypes
|
|
11
|
+
# The payload of an event whose record has no Store serializer.
|
|
12
|
+
RECORD_REFERENCE = 'WebhookRecordReference'.freeze
|
|
13
|
+
BACK_OFFICE_SERIALIZER = /\ASpree::Api::V3::\w+::/
|
|
14
|
+
HEADER = "// This file is auto-generated from Spree's event catalog by `rake typelizer:generate`. Do not edit directly.\n".freeze
|
|
15
|
+
|
|
16
|
+
FILES = {
|
|
17
|
+
types: 'packages/sdk/src/webhooks/generated/events.ts',
|
|
18
|
+
schemas: 'packages/sdk/src/webhooks/generated/schemas.ts'
|
|
19
|
+
}.freeze
|
|
20
|
+
|
|
21
|
+
# @param catalog [Spree::Events::Catalog]
|
|
22
|
+
def initialize(catalog = Spree::Events.catalog)
|
|
23
|
+
@catalog = catalog
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# @return [Hash{Symbol => String}] file contents keyed like {FILES}
|
|
27
|
+
def render
|
|
28
|
+
{ types: types_source, schemas: schemas_source }
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Writes both files under the monorepo root.
|
|
32
|
+
#
|
|
33
|
+
# @param root [Pathname]
|
|
34
|
+
# @return [void]
|
|
35
|
+
def write!(root)
|
|
36
|
+
render.each do |key, source|
|
|
37
|
+
path = root.join(FILES.fetch(key))
|
|
38
|
+
FileUtils.mkdir_p(path.dirname)
|
|
39
|
+
File.write(path, source)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
private
|
|
44
|
+
|
|
45
|
+
attr_reader :catalog
|
|
46
|
+
|
|
47
|
+
def entries
|
|
48
|
+
@entries ||= catalog.webhook_events
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def payload_type_names
|
|
52
|
+
@payload_type_names ||= type_names.values.uniq.sort - [RECORD_REFERENCE]
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def type_name(entry)
|
|
56
|
+
type_names.fetch(entry.name)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def type_names
|
|
60
|
+
@type_names ||= entries.to_h { |entry| [entry.name, resolve_type_name(entry)] }
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Named the way the Store SDK's type writer names it. A back-office shape
|
|
64
|
+
# stays behind the Admin API even when a Store-level class inherits it
|
|
65
|
+
# (docs/plans/6.0-typed-webhook-events.md).
|
|
66
|
+
def resolve_type_name(entry)
|
|
67
|
+
serializer = entry.payload_serializer
|
|
68
|
+
return RECORD_REFERENCE unless serializer
|
|
69
|
+
|
|
70
|
+
back_office = serializer.ancestors.grep(Class).any? { |ancestor| ancestor.name.to_s.match?(BACK_OFFICE_SERIALIZER) }
|
|
71
|
+
if back_office || store_writer.reject_class.call(serializer: serializer)
|
|
72
|
+
raise ArgumentError, "#{entry.name} is built by #{serializer.name}, which is not a Store API serializer"
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
store_writer.serializer_name_mapper.call(serializer)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def store_writer
|
|
79
|
+
Typelizer.configuration.writers.fetch(:store)
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
def types_source
|
|
83
|
+
<<~TS
|
|
84
|
+
#{HEADER}import type {
|
|
85
|
+
#{payload_type_names.map { |name| " #{name}," }.join("\n")}
|
|
86
|
+
} from '../../types/generated'
|
|
87
|
+
|
|
88
|
+
/** The payload of an event whose record has no Store API representation. */
|
|
89
|
+
export interface #{RECORD_REFERENCE} {
|
|
90
|
+
id: string
|
|
91
|
+
created_at: string | null
|
|
92
|
+
updated_at: string | null
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Every webhook event Spree publishes, mapped to the record its `data`
|
|
97
|
+
* carries. An interface, so an extension adds its own events by
|
|
98
|
+
* declaration merging.
|
|
99
|
+
*/
|
|
100
|
+
export interface WebhookEventMap {
|
|
101
|
+
#{entries.map { |entry| map_line(entry) }.join("\n")}
|
|
102
|
+
}
|
|
103
|
+
TS
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def map_line(entry)
|
|
107
|
+
notes = []
|
|
108
|
+
notes << "@deprecated Use `#{entry.deprecated_alias_of}` instead." if entry.deprecated?
|
|
109
|
+
notes << 'Carries a live credential: delivered only to endpoints that name this event.' if entry.credential?
|
|
110
|
+
comment = notes.map { |note| " /** #{note} */\n" }.join
|
|
111
|
+
"#{comment} '#{entry.name}': #{type_name(entry)}"
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def schemas_source
|
|
115
|
+
schema_names = payload_type_names.map { |name| "#{name}Schema" }
|
|
116
|
+
|
|
117
|
+
<<~TS
|
|
118
|
+
#{HEADER}import { z } from 'zod'
|
|
119
|
+
import {
|
|
120
|
+
#{schema_names.map { |name| " #{name}," }.join("\n")}
|
|
121
|
+
} from '../../zod/generated'
|
|
122
|
+
|
|
123
|
+
export const #{RECORD_REFERENCE}Schema = z.object({
|
|
124
|
+
id: z.string(),
|
|
125
|
+
created_at: z.string().nullable(),
|
|
126
|
+
updated_at: z.string().nullable(),
|
|
127
|
+
})
|
|
128
|
+
|
|
129
|
+
type WebhookEventName =
|
|
130
|
+
#{entries.map { |entry| " | '#{entry.name}'" }.join("\n")}
|
|
131
|
+
|
|
132
|
+
/** The Zod schema for each webhook event's `data`, for `constructWebhookEvent`'s `schemas` option. */
|
|
133
|
+
export const webhookEventSchemas: Readonly<Record<WebhookEventName, z.ZodType>> = {
|
|
134
|
+
#{entries.map { |entry| " '#{entry.name}': #{type_name(entry)}Schema," }.join("\n")}
|
|
135
|
+
}
|
|
136
|
+
TS
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
end
|