spree_api 5.4.0.rc5 → 5.4.0.rc6
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/app/controllers/spree/api/v3/store/carts_controller.rb +1 -0
- data/app/serializers/spree/api/v3/admin/country_serializer.rb +15 -0
- data/app/serializers/spree/api/v3/admin/market_serializer.rb +15 -0
- data/app/serializers/spree/api/v3/admin/order_serializer.rb +1 -0
- data/app/serializers/spree/api/v3/admin/state_serializer.rb +11 -0
- data/app/serializers/spree/api/v3/base_serializer.rb +4 -2
- data/app/serializers/spree/api/v3/cart_serializer.rb +8 -2
- data/app/serializers/spree/api/v3/option_type_serializer.rb +2 -2
- data/app/serializers/spree/api/v3/option_value_serializer.rb +7 -2
- data/app/serializers/spree/api/v3/order_serializer.rb +8 -2
- data/app/services/spree/api/v3/filters_aggregator.rb +3 -0
- data/lib/spree/api/dependencies.rb +3 -0
- metadata +9 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3c6d59935273b4cebfd26475ed05ea9840f29fee02e48dcb1157d085f3f64fca
|
|
4
|
+
data.tar.gz: a123d6fc36a3da09c3c4dd20e49038dda91fe3b9975bcdb84d8d0d69da2be1b0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 73d708653cef72adfc6b5b4af0e341746187c19f2f752de81cdcd3222ca9855115df204f3bfda74665ce33bb7273eed11f2c7c0038bf18ee86a3c56f3f5cbb12
|
|
7
|
+
data.tar.gz: 48ede905487d71fdb3d5944c3fdc1c43478036d6fd12dd946118fcb338d8ed3a15c739cc3e67701f73ae6ad5f60f78b50151872ee066d29e15d5166ddf56bd0a
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
module Admin
|
|
5
|
+
class CountrySerializer < V3::CountrySerializer
|
|
6
|
+
attributes created_at: :iso8601, updated_at: :iso8601
|
|
7
|
+
|
|
8
|
+
many :states,
|
|
9
|
+
resource: Spree.api.admin_state_serializer,
|
|
10
|
+
if: proc { expand?(:states) }
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module Spree
|
|
2
|
+
module Api
|
|
3
|
+
module V3
|
|
4
|
+
module Admin
|
|
5
|
+
class MarketSerializer < V3::MarketSerializer
|
|
6
|
+
attributes created_at: :iso8601, updated_at: :iso8601
|
|
7
|
+
|
|
8
|
+
many :countries,
|
|
9
|
+
resource: Spree.api.admin_country_serializer,
|
|
10
|
+
if: proc { expand?(:countries) }
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -52,6 +52,7 @@ module Spree
|
|
|
52
52
|
one :billing_address, resource: Spree.api.admin_address_serializer, if: proc { expand?('billing_address') }
|
|
53
53
|
one :shipping_address, resource: Spree.api.admin_address_serializer, if: proc { expand?('shipping_address') }
|
|
54
54
|
one :gift_card, resource: Spree.api.admin_gift_card_serializer
|
|
55
|
+
one :market, resource: Spree.api.admin_market_serializer
|
|
55
56
|
|
|
56
57
|
many :payment_methods, resource: Spree.api.admin_payment_method_serializer, if: proc { expand?('payment_methods') }
|
|
57
58
|
|
|
@@ -60,10 +60,12 @@ module Spree
|
|
|
60
60
|
private
|
|
61
61
|
|
|
62
62
|
# Override Alba's fetch_attribute to automatically inject nested expand params
|
|
63
|
-
# into child serializers via nested_params
|
|
63
|
+
# into child serializers via nested_params.
|
|
64
|
+
# Uses `key` (the public API name, e.g. :categories) for expand lookup,
|
|
65
|
+
# not `attribute.name` (the internal association name, e.g. :taxons).
|
|
64
66
|
def fetch_attribute(obj, key, attribute)
|
|
65
67
|
if attribute.is_a?(Alba::Association)
|
|
66
|
-
nested = nested_params(
|
|
68
|
+
nested = nested_params(key)
|
|
67
69
|
yield_if_within(attribute.name.to_sym) { |within| attribute.to_h(obj, params: nested, within: within) }
|
|
68
70
|
else
|
|
69
71
|
super
|
|
@@ -5,7 +5,8 @@ module Spree
|
|
|
5
5
|
# Pre-purchase cart data with checkout progression info
|
|
6
6
|
class CartSerializer < BaseSerializer
|
|
7
7
|
typelize number: :string, current_step: :string, completed_steps: 'string[]', token: :string, email: [:string, nullable: true],
|
|
8
|
-
customer_note: [:string, nullable: true],
|
|
8
|
+
customer_note: [:string, nullable: true], market_id: [:string, nullable: true],
|
|
9
|
+
currency: :string, locale: [:string, nullable: true], total_quantity: :number,
|
|
9
10
|
requirements: 'Array<{step: string, field: string, message: string}>',
|
|
10
11
|
item_total: :string, display_item_total: :string,
|
|
11
12
|
delivery_total: :string, display_delivery_total: :string,
|
|
@@ -22,13 +23,17 @@ module Spree
|
|
|
22
23
|
shipping_eq_billing_address: :boolean,
|
|
23
24
|
warnings: 'Array<{code: string, message: string, line_item_id?: string, variant_id?: string}>',
|
|
24
25
|
billing_address: { nullable: true }, shipping_address: { nullable: true },
|
|
25
|
-
gift_card: { nullable: true }
|
|
26
|
+
gift_card: { nullable: true }, market: { nullable: true }
|
|
26
27
|
|
|
27
28
|
# Override ID to use cart_ prefix
|
|
28
29
|
attribute :id do |order|
|
|
29
30
|
"cart_#{Spree::PrefixedId::SQIDS.encode([order.id])}"
|
|
30
31
|
end
|
|
31
32
|
|
|
33
|
+
attribute :market_id do |order|
|
|
34
|
+
order.market&.prefixed_id
|
|
35
|
+
end
|
|
36
|
+
|
|
32
37
|
attributes :number, :token, :email, :customer_note,
|
|
33
38
|
:currency, :locale, :total_quantity,
|
|
34
39
|
:item_total, :display_item_total,
|
|
@@ -77,6 +82,7 @@ module Spree
|
|
|
77
82
|
|
|
78
83
|
many :payment_methods, resource: Spree.api.payment_method_serializer
|
|
79
84
|
one :gift_card, resource: Spree.api.gift_card_serializer
|
|
85
|
+
one :market, resource: Spree.api.market_serializer
|
|
80
86
|
end
|
|
81
87
|
end
|
|
82
88
|
end
|
|
@@ -2,9 +2,9 @@ module Spree
|
|
|
2
2
|
module Api
|
|
3
3
|
module V3
|
|
4
4
|
class OptionTypeSerializer < BaseSerializer
|
|
5
|
-
typelize name: :string, label: :string, position: :number
|
|
5
|
+
typelize name: :string, label: :string, position: :number, kind: :string
|
|
6
6
|
|
|
7
|
-
attributes :name, :label, :position
|
|
7
|
+
attributes :name, :label, :position, :kind
|
|
8
8
|
end
|
|
9
9
|
end
|
|
10
10
|
end
|
|
@@ -3,13 +3,14 @@ module Spree
|
|
|
3
3
|
module V3
|
|
4
4
|
class OptionValueSerializer < BaseSerializer
|
|
5
5
|
typelize name: :string, label: :string, position: :number, option_type_id: :string,
|
|
6
|
-
option_type_name: :string, option_type_label: :string
|
|
6
|
+
option_type_name: :string, option_type_label: :string,
|
|
7
|
+
color_code: 'string | null', image_url: 'string | null'
|
|
7
8
|
|
|
8
9
|
attribute :option_type_id do |option_value|
|
|
9
10
|
option_value.option_type&.prefixed_id
|
|
10
11
|
end
|
|
11
12
|
|
|
12
|
-
attributes :name, :label, :position
|
|
13
|
+
attributes :name, :label, :position, :color_code
|
|
13
14
|
|
|
14
15
|
attribute :option_type_name do |option_value|
|
|
15
16
|
option_value.option_type.name
|
|
@@ -18,6 +19,10 @@ module Spree
|
|
|
18
19
|
attribute :option_type_label do |option_value|
|
|
19
20
|
option_value.option_type.label
|
|
20
21
|
end
|
|
22
|
+
|
|
23
|
+
attribute :image_url do |option_value|
|
|
24
|
+
image_url_for(option_value.image)
|
|
25
|
+
end
|
|
21
26
|
end
|
|
22
27
|
end
|
|
23
28
|
end
|
|
@@ -5,7 +5,8 @@ module Spree
|
|
|
5
5
|
# Post-purchase order data (completed orders)
|
|
6
6
|
class OrderSerializer < BaseSerializer
|
|
7
7
|
typelize number: :string, email: :string,
|
|
8
|
-
customer_note: [:string, nullable: true],
|
|
8
|
+
customer_note: [:string, nullable: true], market_id: [:string, nullable: true],
|
|
9
|
+
currency: :string, locale: [:string, nullable: true], total_quantity: :number,
|
|
9
10
|
fulfillment_status: [:string, nullable: true], payment_status: [:string, nullable: true],
|
|
10
11
|
item_total: :string, display_item_total: :string,
|
|
11
12
|
delivery_total: :string, display_delivery_total: :string,
|
|
@@ -21,7 +22,11 @@ module Spree
|
|
|
21
22
|
amount_due: :string, display_amount_due: :string,
|
|
22
23
|
completed_at: [:string, nullable: true],
|
|
23
24
|
billing_address: { nullable: true }, shipping_address: { nullable: true },
|
|
24
|
-
gift_card: { nullable: true }
|
|
25
|
+
gift_card: { nullable: true }, market: { nullable: true }
|
|
26
|
+
|
|
27
|
+
attribute :market_id do |order|
|
|
28
|
+
order.market&.prefixed_id
|
|
29
|
+
end
|
|
25
30
|
|
|
26
31
|
attributes :number, :email, :customer_note,
|
|
27
32
|
:currency, :locale, :total_quantity,
|
|
@@ -54,6 +59,7 @@ module Spree
|
|
|
54
59
|
one :billing_address, resource: Spree.api.address_serializer
|
|
55
60
|
one :shipping_address, resource: Spree.api.address_serializer
|
|
56
61
|
one :gift_card, resource: Spree.api.gift_card_serializer
|
|
62
|
+
one :market, resource: Spree.api.market_serializer
|
|
57
63
|
end
|
|
58
64
|
end
|
|
59
65
|
end
|
|
@@ -94,6 +94,7 @@ module Spree
|
|
|
94
94
|
type: 'option',
|
|
95
95
|
name: option_type.name,
|
|
96
96
|
label: option_type.label,
|
|
97
|
+
kind: option_type.kind,
|
|
97
98
|
options: values.map { |ov| option_value_data(count_ids, ov) }
|
|
98
99
|
}
|
|
99
100
|
end
|
|
@@ -112,6 +113,8 @@ module Spree
|
|
|
112
113
|
name: option_value.name,
|
|
113
114
|
label: option_value.label,
|
|
114
115
|
position: option_value.position,
|
|
116
|
+
color_code: option_value.color_code,
|
|
117
|
+
image_url: option_value.image.attached? ? Rails.application.routes.url_helpers.cdn_image_url(option_value.image) : nil,
|
|
115
118
|
count: count
|
|
116
119
|
}
|
|
117
120
|
end
|
|
@@ -156,6 +156,8 @@ module Spree
|
|
|
156
156
|
stock_transfer_serializer: 'Spree::Api::V3::StockTransferSerializer',
|
|
157
157
|
|
|
158
158
|
# v3 admin serializers (API v3 Admin)
|
|
159
|
+
admin_country_serializer: 'Spree::Api::V3::Admin::CountrySerializer',
|
|
160
|
+
admin_state_serializer: 'Spree::Api::V3::Admin::StateSerializer',
|
|
159
161
|
admin_discount_serializer: 'Spree::Api::V3::Admin::DiscountSerializer',
|
|
160
162
|
admin_customer_serializer: 'Spree::Api::V3::Admin::CustomerSerializer',
|
|
161
163
|
admin_order_serializer: 'Spree::Api::V3::Admin::OrderSerializer',
|
|
@@ -183,6 +185,7 @@ module Spree
|
|
|
183
185
|
admin_reimbursement_serializer: 'Spree::Api::V3::Admin::ReimbursementSerializer',
|
|
184
186
|
admin_admin_user_serializer: 'Spree::Api::V3::Admin::AdminUserSerializer',
|
|
185
187
|
admin_address_serializer: 'Spree::Api::V3::Admin::AddressSerializer',
|
|
188
|
+
admin_market_serializer: 'Spree::Api::V3::Admin::MarketSerializer',
|
|
186
189
|
admin_shipping_method_serializer: 'Spree::Api::V3::Admin::DeliveryMethodSerializer',
|
|
187
190
|
admin_delivery_method_serializer: 'Spree::Api::V3::Admin::DeliveryMethodSerializer',
|
|
188
191
|
admin_stock_location_serializer: 'Spree::Api::V3::Admin::StockLocationSerializer',
|
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.rc6
|
|
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-
|
|
11
|
+
date: 2026-04-04 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.rc6
|
|
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.rc6
|
|
97
97
|
description: Spree's API
|
|
98
98
|
email:
|
|
99
99
|
- hello@spreecommerce.org
|
|
@@ -162,6 +162,7 @@ files:
|
|
|
162
162
|
- app/serializers/spree/api/v3/admin/allowed_origin_serializer.rb
|
|
163
163
|
- app/serializers/spree/api/v3/admin/asset_serializer.rb
|
|
164
164
|
- app/serializers/spree/api/v3/admin/category_serializer.rb
|
|
165
|
+
- app/serializers/spree/api/v3/admin/country_serializer.rb
|
|
165
166
|
- app/serializers/spree/api/v3/admin/credit_card_serializer.rb
|
|
166
167
|
- app/serializers/spree/api/v3/admin/custom_field_serializer.rb
|
|
167
168
|
- app/serializers/spree/api/v3/admin/customer_serializer.rb
|
|
@@ -172,6 +173,7 @@ files:
|
|
|
172
173
|
- app/serializers/spree/api/v3/admin/fulfillment_serializer.rb
|
|
173
174
|
- app/serializers/spree/api/v3/admin/gift_card_serializer.rb
|
|
174
175
|
- app/serializers/spree/api/v3/admin/line_item_serializer.rb
|
|
176
|
+
- app/serializers/spree/api/v3/admin/market_serializer.rb
|
|
175
177
|
- app/serializers/spree/api/v3/admin/media_serializer.rb
|
|
176
178
|
- app/serializers/spree/api/v3/admin/option_type_serializer.rb
|
|
177
179
|
- app/serializers/spree/api/v3/admin/option_value_serializer.rb
|
|
@@ -186,6 +188,7 @@ files:
|
|
|
186
188
|
- app/serializers/spree/api/v3/admin/reimbursement_serializer.rb
|
|
187
189
|
- app/serializers/spree/api/v3/admin/return_authorization_serializer.rb
|
|
188
190
|
- app/serializers/spree/api/v3/admin/shipping_category_serializer.rb
|
|
191
|
+
- app/serializers/spree/api/v3/admin/state_serializer.rb
|
|
189
192
|
- app/serializers/spree/api/v3/admin/stock_item_serializer.rb
|
|
190
193
|
- app/serializers/spree/api/v3/admin/stock_location_serializer.rb
|
|
191
194
|
- app/serializers/spree/api/v3/admin/store_credit_serializer.rb
|
|
@@ -274,9 +277,9 @@ licenses:
|
|
|
274
277
|
- BSD-3-Clause
|
|
275
278
|
metadata:
|
|
276
279
|
bug_tracker_uri: https://github.com/spree/spree/issues
|
|
277
|
-
changelog_uri: https://github.com/spree/spree/releases/tag/v5.4.0.
|
|
280
|
+
changelog_uri: https://github.com/spree/spree/releases/tag/v5.4.0.rc6
|
|
278
281
|
documentation_uri: https://docs.spreecommerce.org/
|
|
279
|
-
source_code_uri: https://github.com/spree/spree/tree/v5.4.0.
|
|
282
|
+
source_code_uri: https://github.com/spree/spree/tree/v5.4.0.rc6
|
|
280
283
|
post_install_message:
|
|
281
284
|
rdoc_options: []
|
|
282
285
|
require_paths:
|