spree_api 5.4.0.beta8 → 5.4.0.beta10
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 +17 -0
- data/app/controllers/concerns/spree/api/v3/error_handler.rb +1 -0
- data/app/controllers/concerns/spree/api/v3/http_caching.rb +1 -1
- data/app/controllers/concerns/spree/api/v3/store/search_provider_support.rb +27 -0
- data/app/controllers/spree/api/v3/store/auth_controller.rb +62 -19
- data/app/controllers/spree/api/v3/store/carts/{shipments_controller.rb → fulfillments_controller.rb} +13 -13
- data/app/controllers/spree/api/v3/store/carts_controller.rb +9 -7
- data/app/controllers/spree/api/v3/store/customer/addresses_controller.rb +2 -2
- data/app/controllers/spree/api/v3/store/customer/password_resets_controller.rb +2 -0
- data/app/controllers/spree/api/v3/store/customers_controller.rb +6 -2
- data/app/controllers/spree/api/v3/store/products/filters_controller.rb +14 -10
- data/app/controllers/spree/api/v3/store/products_controller.rb +16 -36
- data/app/serializers/spree/api/v3/address_serializer.rb +4 -4
- data/app/serializers/spree/api/v3/admin/address_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/admin/credit_card_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/admin/{shipping_method_serializer.rb → delivery_method_serializer.rb} +1 -1
- data/app/serializers/spree/api/v3/admin/delivery_rate_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/admin/{order_promotion_serializer.rb → discount_serializer.rb} +1 -1
- data/app/serializers/spree/api/v3/admin/{shipment_serializer.rb → fulfillment_serializer.rb} +3 -3
- data/app/serializers/spree/api/v3/admin/order_serializer.rb +8 -7
- data/app/serializers/spree/api/v3/admin/product_serializer.rb +0 -5
- data/app/serializers/spree/api/v3/admin/store_credit_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/cart_serializer.rb +19 -12
- data/app/serializers/spree/api/v3/credit_card_serializer.rb +4 -3
- data/app/serializers/spree/api/v3/{shipping_method_serializer.rb → delivery_method_serializer.rb} +1 -1
- data/app/serializers/spree/api/v3/{shipping_rate_serializer.rb → delivery_rate_serializer.rb} +4 -4
- data/app/serializers/spree/api/v3/{cart_promotion_serializer.rb → discount_serializer.rb} +5 -5
- data/app/serializers/spree/api/v3/fulfillment_serializer.rb +45 -0
- data/app/serializers/spree/api/v3/gift_card_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/line_item_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/newsletter_subscriber_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/option_type_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/option_value_serializer.rb +5 -5
- data/app/serializers/spree/api/v3/order_serializer.rb +15 -13
- data/app/serializers/spree/api/v3/payment_serializer.rb +6 -2
- data/app/serializers/spree/api/v3/payment_source_serializer.rb +1 -3
- data/app/serializers/spree/api/v3/product_serializer.rb +0 -5
- data/app/serializers/spree/api/v3/promotion_serializer.rb +4 -16
- data/app/serializers/spree/api/v3/return_authorization_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/variant_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/{wished_item_serializer.rb → wishlist_item_serializer.rb} +1 -1
- data/app/serializers/spree/api/v3/wishlist_serializer.rb +1 -1
- data/app/services/spree/api/v3/filters_aggregator.rb +2 -2
- data/config/initializers/typelizer.rb +13 -1
- data/config/routes.rb +2 -1
- data/lib/spree/api/configuration.rb +1 -0
- data/lib/spree/api/dependencies.rb +16 -10
- data/lib/spree/api/openapi/schema_helper.rb +31 -1
- metadata +17 -17
- data/app/serializers/spree/api/v3/admin/shipping_rate_serializer.rb +0 -11
- data/app/serializers/spree/api/v3/order_promotion_serializer.rb +0 -16
- data/app/serializers/spree/api/v3/shipment_serializer.rb +0 -19
|
@@ -81,9 +81,10 @@ module Spree
|
|
|
81
81
|
type: :object,
|
|
82
82
|
properties: {
|
|
83
83
|
token: { type: :string, description: 'JWT access token' },
|
|
84
|
+
refresh_token: { type: :string, description: 'Refresh token for obtaining new access tokens' },
|
|
84
85
|
user: { '$ref' => '#/components/schemas/Customer' }
|
|
85
86
|
},
|
|
86
|
-
required: %w[token user]
|
|
87
|
+
required: %w[token refresh_token user]
|
|
87
88
|
},
|
|
88
89
|
CheckoutRequirement: {
|
|
89
90
|
type: :object,
|
|
@@ -93,6 +94,16 @@ module Spree
|
|
|
93
94
|
message: { type: :string, description: 'Human-readable requirement message', example: 'Add a payment method' }
|
|
94
95
|
},
|
|
95
96
|
required: %w[step field message]
|
|
97
|
+
},
|
|
98
|
+
FulfillmentManifestItem: {
|
|
99
|
+
type: :object,
|
|
100
|
+
description: 'An item within a fulfillment — which line item and how many units are in this fulfillment',
|
|
101
|
+
properties: {
|
|
102
|
+
item_id: { type: :string, description: 'Line item prefixed ID', example: 'li_abc123' },
|
|
103
|
+
variant_id: { type: :string, description: 'Variant prefixed ID', example: 'variant_abc123' },
|
|
104
|
+
quantity: { type: :integer, description: 'Quantity in this fulfillment', example: 2 }
|
|
105
|
+
},
|
|
106
|
+
required: %w[item_id variant_id quantity]
|
|
96
107
|
}
|
|
97
108
|
}
|
|
98
109
|
end
|
|
@@ -120,6 +131,7 @@ module Spree
|
|
|
120
131
|
strip_null_from_enums(s)
|
|
121
132
|
end
|
|
122
133
|
patch_cart_schema(schemas)
|
|
134
|
+
patch_fulfillment_schema(schemas)
|
|
123
135
|
schemas
|
|
124
136
|
end
|
|
125
137
|
end
|
|
@@ -142,6 +154,24 @@ module Spree
|
|
|
142
154
|
end
|
|
143
155
|
end
|
|
144
156
|
|
|
157
|
+
# Typelizer cannot represent Array<{...}> inline object types in OpenAPI,
|
|
158
|
+
# so we patch Fulfillment#items to reference the FulfillmentManifestItem component schema.
|
|
159
|
+
def patch_fulfillment_schema(schemas)
|
|
160
|
+
fulfillment = schemas['Fulfillment'] || schemas[:Fulfillment]
|
|
161
|
+
return unless fulfillment
|
|
162
|
+
|
|
163
|
+
props = fulfillment[:properties]
|
|
164
|
+
return unless props
|
|
165
|
+
|
|
166
|
+
items_key = props.key?('items') ? 'items' : :items
|
|
167
|
+
if props[items_key]
|
|
168
|
+
props[items_key] = {
|
|
169
|
+
type: :array,
|
|
170
|
+
items: { '$ref' => '#/components/schemas/FulfillmentManifestItem' }
|
|
171
|
+
}
|
|
172
|
+
end
|
|
173
|
+
end
|
|
174
|
+
|
|
145
175
|
# Typelizer adds nil to enum arrays for nullable fields.
|
|
146
176
|
# OpenAPI 3.0 handles nullability via `nullable: true`, so the nil entry is redundant
|
|
147
177
|
# and causes issues with code generators.
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: spree_api
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 5.4.0.
|
|
4
|
+
version: 5.4.0.beta10
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Vendo Connect Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-03-
|
|
11
|
+
date: 2026-03-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rswag-specs
|
|
@@ -86,14 +86,14 @@ dependencies:
|
|
|
86
86
|
requirements:
|
|
87
87
|
- - '='
|
|
88
88
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: 5.4.0.
|
|
89
|
+
version: 5.4.0.beta10
|
|
90
90
|
type: :runtime
|
|
91
91
|
prerelease: false
|
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
93
|
requirements:
|
|
94
94
|
- - '='
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: 5.4.0.
|
|
96
|
+
version: 5.4.0.beta10
|
|
97
97
|
description: Spree's API
|
|
98
98
|
email:
|
|
99
99
|
- hello@spreecommerce.org
|
|
@@ -114,6 +114,7 @@ files:
|
|
|
114
114
|
- app/controllers/concerns/spree/api/v3/rate_limit_headers.rb
|
|
115
115
|
- app/controllers/concerns/spree/api/v3/resource_serializer.rb
|
|
116
116
|
- app/controllers/concerns/spree/api/v3/security_headers.rb
|
|
117
|
+
- app/controllers/concerns/spree/api/v3/store/search_provider_support.rb
|
|
117
118
|
- app/controllers/spree/api/v3/admin/base_controller.rb
|
|
118
119
|
- app/controllers/spree/api/v3/admin/resource_controller.rb
|
|
119
120
|
- app/controllers/spree/api/v3/base_controller.rb
|
|
@@ -121,11 +122,11 @@ files:
|
|
|
121
122
|
- app/controllers/spree/api/v3/store/auth_controller.rb
|
|
122
123
|
- app/controllers/spree/api/v3/store/base_controller.rb
|
|
123
124
|
- app/controllers/spree/api/v3/store/carts/coupon_codes_controller.rb
|
|
125
|
+
- app/controllers/spree/api/v3/store/carts/fulfillments_controller.rb
|
|
124
126
|
- app/controllers/spree/api/v3/store/carts/items_controller.rb
|
|
125
127
|
- app/controllers/spree/api/v3/store/carts/payment_methods_controller.rb
|
|
126
128
|
- app/controllers/spree/api/v3/store/carts/payment_sessions_controller.rb
|
|
127
129
|
- app/controllers/spree/api/v3/store/carts/payments_controller.rb
|
|
128
|
-
- app/controllers/spree/api/v3/store/carts/shipments_controller.rb
|
|
129
130
|
- app/controllers/spree/api/v3/store/carts/store_credits_controller.rb
|
|
130
131
|
- app/controllers/spree/api/v3/store/carts_controller.rb
|
|
131
132
|
- app/controllers/spree/api/v3/store/categories/products_controller.rb
|
|
@@ -161,13 +162,16 @@ files:
|
|
|
161
162
|
- app/serializers/spree/api/v3/admin/category_serializer.rb
|
|
162
163
|
- app/serializers/spree/api/v3/admin/credit_card_serializer.rb
|
|
163
164
|
- app/serializers/spree/api/v3/admin/customer_serializer.rb
|
|
165
|
+
- app/serializers/spree/api/v3/admin/delivery_method_serializer.rb
|
|
166
|
+
- app/serializers/spree/api/v3/admin/delivery_rate_serializer.rb
|
|
164
167
|
- app/serializers/spree/api/v3/admin/digital_link_serializer.rb
|
|
168
|
+
- app/serializers/spree/api/v3/admin/discount_serializer.rb
|
|
169
|
+
- app/serializers/spree/api/v3/admin/fulfillment_serializer.rb
|
|
165
170
|
- app/serializers/spree/api/v3/admin/line_item_serializer.rb
|
|
166
171
|
- app/serializers/spree/api/v3/admin/media_serializer.rb
|
|
167
172
|
- app/serializers/spree/api/v3/admin/metafield_serializer.rb
|
|
168
173
|
- app/serializers/spree/api/v3/admin/option_type_serializer.rb
|
|
169
174
|
- app/serializers/spree/api/v3/admin/option_value_serializer.rb
|
|
170
|
-
- app/serializers/spree/api/v3/admin/order_promotion_serializer.rb
|
|
171
175
|
- app/serializers/spree/api/v3/admin/order_serializer.rb
|
|
172
176
|
- app/serializers/spree/api/v3/admin/payment_method_serializer.rb
|
|
173
177
|
- app/serializers/spree/api/v3/admin/payment_serializer.rb
|
|
@@ -177,10 +181,7 @@ files:
|
|
|
177
181
|
- app/serializers/spree/api/v3/admin/refund_serializer.rb
|
|
178
182
|
- app/serializers/spree/api/v3/admin/reimbursement_serializer.rb
|
|
179
183
|
- app/serializers/spree/api/v3/admin/return_authorization_serializer.rb
|
|
180
|
-
- app/serializers/spree/api/v3/admin/shipment_serializer.rb
|
|
181
184
|
- app/serializers/spree/api/v3/admin/shipping_category_serializer.rb
|
|
182
|
-
- app/serializers/spree/api/v3/admin/shipping_method_serializer.rb
|
|
183
|
-
- app/serializers/spree/api/v3/admin/shipping_rate_serializer.rb
|
|
184
185
|
- app/serializers/spree/api/v3/admin/stock_item_serializer.rb
|
|
185
186
|
- app/serializers/spree/api/v3/admin/stock_location_serializer.rb
|
|
186
187
|
- app/serializers/spree/api/v3/admin/store_credit_serializer.rb
|
|
@@ -188,7 +189,6 @@ files:
|
|
|
188
189
|
- app/serializers/spree/api/v3/admin/variant_serializer.rb
|
|
189
190
|
- app/serializers/spree/api/v3/asset_serializer.rb
|
|
190
191
|
- app/serializers/spree/api/v3/base_serializer.rb
|
|
191
|
-
- app/serializers/spree/api/v3/cart_promotion_serializer.rb
|
|
192
192
|
- app/serializers/spree/api/v3/cart_serializer.rb
|
|
193
193
|
- app/serializers/spree/api/v3/category_serializer.rb
|
|
194
194
|
- app/serializers/spree/api/v3/country_serializer.rb
|
|
@@ -196,9 +196,13 @@ files:
|
|
|
196
196
|
- app/serializers/spree/api/v3/currency_serializer.rb
|
|
197
197
|
- app/serializers/spree/api/v3/customer_return_serializer.rb
|
|
198
198
|
- app/serializers/spree/api/v3/customer_serializer.rb
|
|
199
|
+
- app/serializers/spree/api/v3/delivery_method_serializer.rb
|
|
200
|
+
- app/serializers/spree/api/v3/delivery_rate_serializer.rb
|
|
199
201
|
- app/serializers/spree/api/v3/digital_link_serializer.rb
|
|
200
202
|
- app/serializers/spree/api/v3/digital_serializer.rb
|
|
203
|
+
- app/serializers/spree/api/v3/discount_serializer.rb
|
|
201
204
|
- app/serializers/spree/api/v3/export_serializer.rb
|
|
205
|
+
- app/serializers/spree/api/v3/fulfillment_serializer.rb
|
|
202
206
|
- app/serializers/spree/api/v3/gift_card_batch_serializer.rb
|
|
203
207
|
- app/serializers/spree/api/v3/gift_card_serializer.rb
|
|
204
208
|
- app/serializers/spree/api/v3/import_row_serializer.rb
|
|
@@ -212,7 +216,6 @@ files:
|
|
|
212
216
|
- app/serializers/spree/api/v3/newsletter_subscriber_serializer.rb
|
|
213
217
|
- app/serializers/spree/api/v3/option_type_serializer.rb
|
|
214
218
|
- app/serializers/spree/api/v3/option_value_serializer.rb
|
|
215
|
-
- app/serializers/spree/api/v3/order_promotion_serializer.rb
|
|
216
219
|
- app/serializers/spree/api/v3/order_serializer.rb
|
|
217
220
|
- app/serializers/spree/api/v3/payment_method_serializer.rb
|
|
218
221
|
- app/serializers/spree/api/v3/payment_serializer.rb
|
|
@@ -227,10 +230,7 @@ files:
|
|
|
227
230
|
- app/serializers/spree/api/v3/report_serializer.rb
|
|
228
231
|
- app/serializers/spree/api/v3/return_authorization_serializer.rb
|
|
229
232
|
- app/serializers/spree/api/v3/return_item_serializer.rb
|
|
230
|
-
- app/serializers/spree/api/v3/shipment_serializer.rb
|
|
231
233
|
- app/serializers/spree/api/v3/shipping_category_serializer.rb
|
|
232
|
-
- app/serializers/spree/api/v3/shipping_method_serializer.rb
|
|
233
|
-
- app/serializers/spree/api/v3/shipping_rate_serializer.rb
|
|
234
234
|
- app/serializers/spree/api/v3/state_serializer.rb
|
|
235
235
|
- app/serializers/spree/api/v3/stock_item_serializer.rb
|
|
236
236
|
- app/serializers/spree/api/v3/stock_location_serializer.rb
|
|
@@ -239,7 +239,7 @@ files:
|
|
|
239
239
|
- app/serializers/spree/api/v3/store_credit_serializer.rb
|
|
240
240
|
- app/serializers/spree/api/v3/tax_category_serializer.rb
|
|
241
241
|
- app/serializers/spree/api/v3/variant_serializer.rb
|
|
242
|
-
- app/serializers/spree/api/v3/
|
|
242
|
+
- app/serializers/spree/api/v3/wishlist_item_serializer.rb
|
|
243
243
|
- app/serializers/spree/api/v3/wishlist_serializer.rb
|
|
244
244
|
- app/services/spree/api/v3/filters_aggregator.rb
|
|
245
245
|
- app/services/spree/webhooks/deliver_webhook.rb
|
|
@@ -268,9 +268,9 @@ licenses:
|
|
|
268
268
|
- BSD-3-Clause
|
|
269
269
|
metadata:
|
|
270
270
|
bug_tracker_uri: https://github.com/spree/spree/issues
|
|
271
|
-
changelog_uri: https://github.com/spree/spree/releases/tag/v5.4.0.
|
|
271
|
+
changelog_uri: https://github.com/spree/spree/releases/tag/v5.4.0.beta10
|
|
272
272
|
documentation_uri: https://docs.spreecommerce.org/
|
|
273
|
-
source_code_uri: https://github.com/spree/spree/tree/v5.4.0.
|
|
273
|
+
source_code_uri: https://github.com/spree/spree/tree/v5.4.0.beta10
|
|
274
274
|
post_install_message:
|
|
275
275
|
rdoc_options: []
|
|
276
276
|
require_paths:
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Api
|
|
3
|
-
module V3
|
|
4
|
-
module Admin
|
|
5
|
-
class ShippingRateSerializer < V3::ShippingRateSerializer
|
|
6
|
-
one :shipping_method, resource: Spree.api.admin_shipping_method_serializer, if: proc { expand?('shipping_method') }
|
|
7
|
-
end
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
end
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Api
|
|
3
|
-
module V3
|
|
4
|
-
class OrderPromotionSerializer < BaseSerializer
|
|
5
|
-
typelize name: :string, description: [:string, nullable: true], code: [:string, nullable: true],
|
|
6
|
-
amount: :string, display_amount: :string, promotion_id: :string
|
|
7
|
-
|
|
8
|
-
attribute :promotion_id do |order_promotion|
|
|
9
|
-
order_promotion.promotion&.prefixed_id
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
attributes :name, :description, :code, :amount, :display_amount
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Api
|
|
3
|
-
module V3
|
|
4
|
-
class ShipmentSerializer < BaseSerializer
|
|
5
|
-
typelize number: :string, state: :string, tracking: [:string, nullable: true],
|
|
6
|
-
tracking_url: [:string, nullable: true], shipped_at: [:string, nullable: true],
|
|
7
|
-
cost: :string, display_cost: :string
|
|
8
|
-
|
|
9
|
-
attributes :number, :state, :tracking, :tracking_url,
|
|
10
|
-
:cost, :display_cost,
|
|
11
|
-
shipped_at: :iso8601, created_at: :iso8601, updated_at: :iso8601
|
|
12
|
-
|
|
13
|
-
one :shipping_method, resource: Spree.api.shipping_method_serializer
|
|
14
|
-
one :stock_location, resource: Spree.api.stock_location_serializer
|
|
15
|
-
many :shipping_rates, resource: Spree.api.shipping_rate_serializer
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|