spree_api 5.2.5 → 5.3.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/app/controllers/concerns/spree/api/v2/product_list_includes.rb +10 -21
- data/app/controllers/concerns/spree/api/v2/storefront/order_concern.rb +2 -2
- data/app/controllers/spree/api/v2/base_controller.rb +2 -2
- data/app/controllers/spree/api/v2/data_feeds/google_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/addresses_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/adjustments_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/classifications_controller.rb +2 -2
- data/app/controllers/spree/api/v2/platform/countries_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/data_feeds_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/digital_links_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/digitals_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/gift_cards_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/line_items_controller.rb +4 -4
- data/app/controllers/spree/api/v2/platform/option_types_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/option_values_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/orders_controller.rb +11 -11
- data/app/controllers/spree/api/v2/platform/payment_methods_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/payments_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/products_controller.rb +2 -2
- data/app/controllers/spree/api/v2/platform/promotion_actions_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/promotion_categories_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/promotion_rules_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/promotions_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/roles_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/shipments_controller.rb +6 -6
- data/app/controllers/spree/api/v2/platform/shipping_categories_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/shipping_methods_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/states_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/stock_items_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/stock_locations_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/store_credit_categories_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/store_credit_types_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/store_credits_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/tax_categories_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/tax_rates_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/taxonomies_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/taxons_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/users_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/variants_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/wished_items_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/wishlists_controller.rb +1 -1
- data/app/controllers/spree/api/v2/platform/zones_controller.rb +1 -1
- data/app/controllers/spree/api/v2/resource_controller.rb +9 -6
- data/app/controllers/spree/api/v2/storefront/account/addresses_controller.rb +5 -5
- data/app/controllers/spree/api/v2/storefront/account/credit_cards_controller.rb +4 -4
- data/app/controllers/spree/api/v2/storefront/account/orders_controller.rb +4 -4
- data/app/controllers/spree/api/v2/storefront/account_controller.rb +3 -3
- data/app/controllers/spree/api/v2/storefront/cart_controller.rb +13 -13
- data/app/controllers/spree/api/v2/storefront/checkout_controller.rb +12 -12
- data/app/controllers/spree/api/v2/storefront/countries_controller.rb +3 -3
- data/app/controllers/spree/api/v2/storefront/order_status_controller.rb +2 -2
- data/app/controllers/spree/api/v2/storefront/policies_controller.rb +2 -2
- data/app/controllers/spree/api/v2/storefront/posts_controller.rb +2 -2
- data/app/controllers/spree/api/v2/storefront/products_controller.rb +5 -8
- data/app/controllers/spree/api/v2/storefront/stores_controller.rb +1 -1
- data/app/controllers/spree/api/v2/storefront/taxons_controller.rb +3 -3
- data/app/controllers/spree/api/v2/storefront/variants_controller.rb +2 -2
- data/app/helpers/spree/api/v2/display_money_helper.rb +30 -10
- data/app/jobs/spree/webhook_delivery_job.rb +16 -0
- data/app/paginators/spree/api/paginate.rb +68 -0
- data/app/serializers/concerns/spree/api/v2/public_metafields_concern.rb +1 -1
- data/app/serializers/concerns/spree/api/v2/resource_serializer_concern.rb +1 -1
- data/app/serializers/spree/api/v2/platform/address_serializer.rb +3 -3
- data/app/serializers/spree/api/v2/platform/adjustment_serializer.rb +5 -5
- data/app/serializers/spree/api/v2/platform/classification_serializer.rb +2 -2
- data/app/serializers/spree/api/v2/platform/country_serializer.rb +1 -1
- data/app/serializers/spree/api/v2/platform/credit_card_serializer.rb +2 -2
- data/app/serializers/spree/api/v2/platform/customer_return_serializer.rb +4 -4
- data/app/serializers/spree/api/v2/platform/digital_link_serializer.rb +2 -2
- data/app/serializers/spree/api/v2/platform/digital_serializer.rb +1 -1
- data/app/serializers/spree/api/v2/platform/gift_card_serializer.rb +2 -2
- data/app/serializers/spree/api/v2/platform/inventory_unit_serializer.rb +7 -7
- data/app/serializers/spree/api/v2/platform/line_item_serializer.rb +6 -6
- data/app/serializers/spree/api/v2/platform/option_type_serializer.rb +1 -1
- data/app/serializers/spree/api/v2/platform/option_value_serializer.rb +1 -1
- data/app/serializers/spree/api/v2/platform/order_promotion_serializer.rb +2 -2
- data/app/serializers/spree/api/v2/platform/order_serializer.rb +15 -15
- data/app/serializers/spree/api/v2/platform/payment_capture_event_serializer.rb +1 -1
- data/app/serializers/spree/api/v2/platform/payment_method_serializer.rb +1 -1
- data/app/serializers/spree/api/v2/platform/payment_serializer.rb +7 -7
- data/app/serializers/spree/api/v2/platform/payment_source_serializer.rb +2 -2
- data/app/serializers/spree/api/v2/platform/product_serializer.rb +20 -12
- data/app/serializers/spree/api/v2/platform/promotion_action_line_item_serializer.rb +2 -2
- data/app/serializers/spree/api/v2/platform/promotion_action_serializer.rb +3 -3
- data/app/serializers/spree/api/v2/platform/promotion_category_serializer.rb +1 -1
- data/app/serializers/spree/api/v2/platform/promotion_rule_serializer.rb +4 -4
- data/app/serializers/spree/api/v2/platform/promotion_serializer.rb +4 -4
- data/app/serializers/spree/api/v2/platform/prototype_serializer.rb +3 -3
- data/app/serializers/spree/api/v2/platform/refund_serializer.rb +5 -5
- data/app/serializers/spree/api/v2/platform/reimbursement_serializer.rb +6 -6
- data/app/serializers/spree/api/v2/platform/return_authorization_serializer.rb +4 -4
- data/app/serializers/spree/api/v2/platform/return_item_serializer.rb +4 -4
- data/app/serializers/spree/api/v2/platform/shipment_serializer.rb +8 -8
- data/app/serializers/spree/api/v2/platform/shipping_method_serializer.rb +4 -4
- data/app/serializers/spree/api/v2/platform/shipping_rate_serializer.rb +3 -3
- data/app/serializers/spree/api/v2/platform/state_change_serializer.rb +1 -1
- data/app/serializers/spree/api/v2/platform/state_serializer.rb +1 -1
- data/app/serializers/spree/api/v2/platform/stock_item_serializer.rb +2 -2
- data/app/serializers/spree/api/v2/platform/stock_location_serializer.rb +1 -1
- data/app/serializers/spree/api/v2/platform/stock_transfer_serializer.rb +3 -3
- data/app/serializers/spree/api/v2/platform/store_credit_event_serializer.rb +1 -1
- data/app/serializers/spree/api/v2/platform/store_credit_serializer.rb +5 -5
- data/app/serializers/spree/api/v2/platform/store_serializer.rb +1 -1
- data/app/serializers/spree/api/v2/platform/tax_category_serializer.rb +1 -1
- data/app/serializers/spree/api/v2/platform/tax_rate_serializer.rb +2 -2
- data/app/serializers/spree/api/v2/platform/taxon_serializer.rb +5 -5
- data/app/serializers/spree/api/v2/platform/taxonomy_serializer.rb +2 -2
- data/app/serializers/spree/api/v2/platform/user_serializer.rb +2 -2
- data/app/serializers/spree/api/v2/platform/variant_serializer.rb +19 -11
- data/app/serializers/spree/api/v2/platform/wished_item_serializer.rb +1 -1
- data/app/serializers/spree/api/v2/platform/wishlist_serializer.rb +1 -1
- data/app/serializers/spree/api/v2/platform/zone_serializer.rb +1 -1
- data/app/serializers/spree/v2/storefront/cart_serializer.rb +9 -9
- data/app/serializers/spree/v2/storefront/credit_card_serializer.rb +1 -1
- data/app/serializers/spree/v2/storefront/estimated_shipping_rate_serializer.rb +1 -1
- data/app/serializers/spree/v2/storefront/line_item_serializer.rb +2 -2
- data/app/serializers/spree/v2/storefront/option_type_serializer.rb +1 -1
- data/app/serializers/spree/v2/storefront/option_value_serializer.rb +1 -1
- data/app/serializers/spree/v2/storefront/payment_serializer.rb +1 -1
- data/app/serializers/spree/v2/storefront/payment_source_serializer.rb +2 -2
- data/app/serializers/spree/v2/storefront/post_category_serializer.rb +1 -1
- data/app/serializers/spree/v2/storefront/post_serializer.rb +1 -1
- data/app/serializers/spree/v2/storefront/product_serializer.rb +20 -12
- data/app/serializers/spree/v2/storefront/shipment_serializer.rb +4 -4
- data/app/serializers/spree/v2/storefront/shipping_rate_serializer.rb +1 -1
- data/app/serializers/spree/v2/storefront/store_credit_serializer.rb +3 -3
- data/app/serializers/spree/v2/storefront/store_serializer.rb +1 -1
- data/app/serializers/spree/v2/storefront/taxon_serializer.rb +6 -6
- data/app/serializers/spree/v2/storefront/user_serializer.rb +2 -2
- data/app/serializers/spree/v2/storefront/variant_serializer.rb +15 -7
- data/app/serializers/spree/v2/storefront/wished_item_serializer.rb +1 -1
- data/app/serializers/spree/v2/storefront/wishlist_serializer.rb +1 -1
- data/app/services/spree/webhooks/deliver_webhook.rb +83 -0
- data/app/subscribers/spree/webhook_event_subscriber.rb +67 -0
- data/config/routes.rb +0 -2
- data/lib/generators/spree/api/install/install_generator.rb +24 -0
- data/lib/spree/api/configuration.rb +3 -0
- data/lib/spree/api/dependencies.rb +1 -1
- data/lib/spree/api/engine.rb +6 -0
- data/lib/spree/api/testing_support/matchers/webhooks.rb +1 -67
- data/lib/spree/api/testing_support/spree_webhooks.rb +1 -9
- data/lib/spree/api/testing_support/v2/current_order.rb +1 -2
- data/lib/spree/api.rb +3 -0
- data/lib/spree_api.rb +0 -2
- metadata +25 -33
- data/app/controllers/spree/api/v2/platform/webhooks/events_controller.rb +0 -25
- data/app/controllers/spree/api/v2/platform/webhooks/subscribers_controller.rb +0 -25
- data/app/jobs/spree/webhooks/subscribers/make_request_job.rb +0 -17
- data/app/models/concerns/spree/webhooks/has_webhooks.rb +0 -95
- data/app/models/spree/order/webhooks.rb +0 -39
- data/app/models/spree/payment/webhooks.rb +0 -23
- data/app/models/spree/product/webhooks.rb +0 -42
- data/app/models/spree/shipment/webhooks.rb +0 -19
- data/app/models/spree/stock_item/webhooks.rb +0 -40
- data/app/models/spree/stock_movement/webhooks.rb +0 -49
- data/app/models/spree/variant/webhooks.rb +0 -25
- data/app/models/spree/webhooks/base.rb +0 -11
- data/app/models/spree/webhooks/event.rb +0 -20
- data/app/models/spree/webhooks/event_signature.rb +0 -33
- data/app/models/spree/webhooks/subscriber.rb +0 -88
- data/app/serializers/spree/api/v2/platform/webhooks/event_serializer.rb +0 -15
- data/app/serializers/spree/api/v2/platform/webhooks/subscriber_serializer.rb +0 -13
- data/app/services/spree/webhooks/subscribers/handle_request.rb +0 -77
- data/app/services/spree/webhooks/subscribers/make_request.rb +0 -83
- data/app/services/spree/webhooks/subscribers/queue_requests.rb +0 -27
- data/db/migrate/20210902162826_create_spree_webhooks_tables.rb +0 -16
- data/db/migrate/20211025162826_create_spree_webhooks_events.rb +0 -14
- data/db/migrate/20221221122100_add_secret_key_to_spree_webhooks_subscribers.rb +0 -5
- data/db/migrate/20230116204600_backfill_secret_key_for_spree_webhooks_subscribers.rb +0 -5
- data/db/migrate/20230116205000_change_secret_key_to_non_null_column.rb +0 -5
- data/lib/spree/api/testing_support/factories/webhook_event_factory.rb +0 -27
- data/lib/spree/api/testing_support/factories/webhook_subscriber_factory.rb +0 -13
|
@@ -47,23 +47,23 @@ module Spree
|
|
|
47
47
|
end
|
|
48
48
|
|
|
49
49
|
def collection_finder
|
|
50
|
-
Spree
|
|
50
|
+
Spree.api.storefront_address_finder
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
def collection_serializer
|
|
54
|
-
Spree
|
|
54
|
+
Spree.api.storefront_address_serializer
|
|
55
55
|
end
|
|
56
56
|
|
|
57
57
|
def resource_serializer
|
|
58
|
-
Spree
|
|
58
|
+
Spree.api.storefront_address_serializer
|
|
59
59
|
end
|
|
60
60
|
|
|
61
61
|
def create_service
|
|
62
|
-
Spree
|
|
62
|
+
Spree.api.storefront_address_create_service
|
|
63
63
|
end
|
|
64
64
|
|
|
65
65
|
def update_service
|
|
66
|
-
Spree
|
|
66
|
+
Spree.api.storefront_address_update_service
|
|
67
67
|
end
|
|
68
68
|
|
|
69
69
|
def address_params
|
|
@@ -30,19 +30,19 @@ module Spree
|
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
def collection_serializer
|
|
33
|
-
Spree
|
|
33
|
+
Spree.api.storefront_credit_card_serializer
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
def collection_finder
|
|
37
|
-
Spree
|
|
37
|
+
Spree.api.storefront_credit_card_finder
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
def resource_serializer
|
|
41
|
-
Spree
|
|
41
|
+
Spree.api.storefront_credit_card_serializer
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
def destroy_service
|
|
45
|
-
Spree
|
|
45
|
+
Spree.api.storefront_credit_cards_destroy_service
|
|
46
46
|
end
|
|
47
47
|
end
|
|
48
48
|
end
|
|
@@ -24,19 +24,19 @@ module Spree
|
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
def collection_serializer
|
|
27
|
-
Spree
|
|
27
|
+
Spree.api.storefront_order_serializer
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
def resource_serializer
|
|
31
|
-
Spree
|
|
31
|
+
Spree.api.storefront_order_serializer
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
def collection_finder
|
|
35
|
-
Spree
|
|
35
|
+
Spree.api.storefront_completed_order_finder
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
def resource_finder
|
|
39
|
-
Spree
|
|
39
|
+
Spree.api.storefront_completed_order_finder
|
|
40
40
|
end
|
|
41
41
|
|
|
42
42
|
def model_class
|
|
@@ -23,7 +23,7 @@ module Spree
|
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
def resource_serializer
|
|
26
|
-
Spree
|
|
26
|
+
Spree.api.storefront_user_serializer
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
def model_class
|
|
@@ -31,11 +31,11 @@ module Spree
|
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def create_service
|
|
34
|
-
Spree
|
|
34
|
+
Spree.api.storefront_account_create_service
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
def update_service
|
|
38
|
-
Spree
|
|
38
|
+
Spree.api.storefront_account_update_service
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
def user_create_params
|
|
@@ -141,7 +141,7 @@ module Spree
|
|
|
141
141
|
|
|
142
142
|
def associate
|
|
143
143
|
guest_order_token = params[:guest_order_token]
|
|
144
|
-
guest_order = ::Spree
|
|
144
|
+
guest_order = ::Spree.api.storefront_current_order_finder.new.execute(
|
|
145
145
|
store: current_store,
|
|
146
146
|
user: nil,
|
|
147
147
|
token: guest_order_token,
|
|
@@ -170,47 +170,47 @@ module Spree
|
|
|
170
170
|
private
|
|
171
171
|
|
|
172
172
|
def resource_serializer
|
|
173
|
-
Spree
|
|
173
|
+
Spree.api.storefront_cart_serializer
|
|
174
174
|
end
|
|
175
175
|
|
|
176
176
|
def create_service
|
|
177
|
-
Spree
|
|
177
|
+
Spree.api.storefront_cart_create_service
|
|
178
178
|
end
|
|
179
179
|
|
|
180
180
|
def add_item_service
|
|
181
|
-
Spree
|
|
181
|
+
Spree.api.storefront_cart_add_item_service
|
|
182
182
|
end
|
|
183
183
|
|
|
184
184
|
def empty_cart_service
|
|
185
|
-
Spree
|
|
185
|
+
Spree.api.storefront_cart_empty_service
|
|
186
186
|
end
|
|
187
187
|
|
|
188
188
|
def destroy_cart_service
|
|
189
|
-
Spree
|
|
189
|
+
Spree.api.storefront_cart_destroy_service
|
|
190
190
|
end
|
|
191
191
|
|
|
192
192
|
def set_item_quantity_service
|
|
193
|
-
Spree
|
|
193
|
+
Spree.api.storefront_cart_set_item_quantity_service
|
|
194
194
|
end
|
|
195
195
|
|
|
196
196
|
def remove_line_item_service
|
|
197
|
-
Spree
|
|
197
|
+
Spree.api.storefront_cart_remove_line_item_service
|
|
198
198
|
end
|
|
199
199
|
|
|
200
200
|
def coupon_handler
|
|
201
|
-
Spree
|
|
201
|
+
Spree.api.storefront_coupon_handler
|
|
202
202
|
end
|
|
203
203
|
|
|
204
204
|
def estimate_shipping_rates_service
|
|
205
|
-
Spree
|
|
205
|
+
Spree.api.storefront_cart_estimate_shipping_rates_service
|
|
206
206
|
end
|
|
207
207
|
|
|
208
208
|
def associate_service
|
|
209
|
-
Spree
|
|
209
|
+
Spree.api.storefront_cart_associate_service
|
|
210
210
|
end
|
|
211
211
|
|
|
212
212
|
def change_currency_service
|
|
213
|
-
Spree
|
|
213
|
+
Spree.api.storefront_cart_change_currency_service
|
|
214
214
|
end
|
|
215
215
|
|
|
216
216
|
def line_item
|
|
@@ -226,7 +226,7 @@ module Spree
|
|
|
226
226
|
end
|
|
227
227
|
|
|
228
228
|
def estimate_shipping_rates_serializer
|
|
229
|
-
Spree
|
|
229
|
+
Spree.api.storefront_estimated_shipment_serializer
|
|
230
230
|
end
|
|
231
231
|
|
|
232
232
|
def serialize_estimated_shipping_rates(shipping_rates)
|
|
@@ -114,51 +114,51 @@ module Spree
|
|
|
114
114
|
private
|
|
115
115
|
|
|
116
116
|
def resource_serializer
|
|
117
|
-
Spree
|
|
117
|
+
Spree.api.storefront_cart_serializer
|
|
118
118
|
end
|
|
119
119
|
|
|
120
120
|
def next_service
|
|
121
|
-
Spree
|
|
121
|
+
Spree.api.storefront_checkout_next_service
|
|
122
122
|
end
|
|
123
123
|
|
|
124
124
|
def advance_service
|
|
125
|
-
Spree
|
|
125
|
+
Spree.api.storefront_checkout_advance_service
|
|
126
126
|
end
|
|
127
127
|
|
|
128
128
|
def add_store_credit_service
|
|
129
|
-
Spree
|
|
129
|
+
Spree.api.storefront_checkout_add_store_credit_service
|
|
130
130
|
end
|
|
131
131
|
|
|
132
132
|
def remove_store_credit_service
|
|
133
|
-
Spree
|
|
133
|
+
Spree.api.storefront_checkout_remove_store_credit_service
|
|
134
134
|
end
|
|
135
135
|
|
|
136
136
|
def complete_service
|
|
137
|
-
Spree
|
|
137
|
+
Spree.api.storefront_checkout_complete_service
|
|
138
138
|
end
|
|
139
139
|
|
|
140
140
|
def update_service
|
|
141
|
-
Spree
|
|
141
|
+
Spree.api.storefront_checkout_update_service
|
|
142
142
|
end
|
|
143
143
|
|
|
144
144
|
def payment_methods_serializer
|
|
145
|
-
Spree
|
|
145
|
+
Spree.api.storefront_payment_method_serializer
|
|
146
146
|
end
|
|
147
147
|
|
|
148
148
|
def shipping_rates_service
|
|
149
|
-
Spree
|
|
149
|
+
Spree.api.storefront_checkout_get_shipping_rates_service
|
|
150
150
|
end
|
|
151
151
|
|
|
152
152
|
def shipping_rates_serializer
|
|
153
|
-
Spree
|
|
153
|
+
Spree.api.storefront_shipment_serializer
|
|
154
154
|
end
|
|
155
155
|
|
|
156
156
|
def create_payment_service
|
|
157
|
-
Spree
|
|
157
|
+
Spree.api.storefront_payment_create_service
|
|
158
158
|
end
|
|
159
159
|
|
|
160
160
|
def select_shipping_method_service
|
|
161
|
-
Spree
|
|
161
|
+
Spree.api.storefront_checkout_select_shipping_method_service
|
|
162
162
|
end
|
|
163
163
|
|
|
164
164
|
def serialize_payment_methods(payment_methods)
|
|
@@ -31,15 +31,15 @@ module Spree
|
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def resource_serializer
|
|
34
|
-
Spree
|
|
34
|
+
Spree.api.storefront_country_serializer
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
def collection_serializer
|
|
38
|
-
Spree
|
|
38
|
+
Spree.api.storefront_country_serializer
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
def collection_finder
|
|
42
|
-
Spree
|
|
42
|
+
Spree.api.storefront_country_finder
|
|
43
43
|
end
|
|
44
44
|
|
|
45
45
|
def model_class
|
|
@@ -17,11 +17,11 @@ module Spree
|
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
def resource_finder
|
|
20
|
-
Spree
|
|
20
|
+
Spree.api.storefront_completed_order_finder
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
def resource_serializer
|
|
24
|
-
Spree
|
|
24
|
+
Spree.api.storefront_cart_serializer
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
def ensure_order_token
|
|
@@ -6,11 +6,11 @@ module Spree
|
|
|
6
6
|
private
|
|
7
7
|
|
|
8
8
|
def collection_serializer
|
|
9
|
-
Spree
|
|
9
|
+
Spree.api.storefront_policy_serializer
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def resource_serializer
|
|
13
|
-
Spree
|
|
13
|
+
Spree.api.storefront_policy_serializer
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def resource
|
|
@@ -18,11 +18,11 @@ module Spree
|
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def collection_finder
|
|
21
|
-
Spree
|
|
21
|
+
Spree.api.storefront_posts_finder
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
def collection_sorter
|
|
25
|
-
Spree
|
|
25
|
+
Spree.api.storefront_posts_sorter
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def collection_serializer
|
|
@@ -21,26 +21,23 @@ module Spree
|
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
def variant_includes
|
|
24
|
-
[
|
|
25
|
-
:prices,
|
|
26
|
-
{ option_values: [:option_type] }
|
|
27
|
-
]
|
|
24
|
+
[:images, :prices, { stock_items: :stock_location }]
|
|
28
25
|
end
|
|
29
26
|
|
|
30
27
|
def collection_sorter
|
|
31
|
-
Spree
|
|
28
|
+
Spree.api.storefront_products_sorter
|
|
32
29
|
end
|
|
33
30
|
|
|
34
31
|
def collection_finder
|
|
35
|
-
Spree
|
|
32
|
+
Spree.api.storefront_products_finder
|
|
36
33
|
end
|
|
37
34
|
|
|
38
35
|
def collection_serializer
|
|
39
|
-
Spree
|
|
36
|
+
Spree.api.storefront_product_serializer
|
|
40
37
|
end
|
|
41
38
|
|
|
42
39
|
def resource_serializer
|
|
43
|
-
Spree
|
|
40
|
+
Spree.api.storefront_product_serializer
|
|
44
41
|
end
|
|
45
42
|
|
|
46
43
|
def model_class
|
|
@@ -6,15 +6,15 @@ module Spree
|
|
|
6
6
|
private
|
|
7
7
|
|
|
8
8
|
def collection_serializer
|
|
9
|
-
Spree
|
|
9
|
+
Spree.api.storefront_taxon_serializer
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def resource_serializer
|
|
13
|
-
Spree
|
|
13
|
+
Spree.api.storefront_taxon_serializer
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def collection_finder
|
|
17
|
-
Spree
|
|
17
|
+
Spree.api.storefront_taxon_finder
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def paginated_collection
|
|
@@ -19,11 +19,11 @@ module Spree
|
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def collection_finder
|
|
22
|
-
Spree
|
|
22
|
+
Spree.api.storefront_variant_finder
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
def collection_serializer
|
|
26
|
-
Spree
|
|
26
|
+
Spree.api.storefront_variant_serializer
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
def scope_includes
|
|
@@ -5,37 +5,57 @@ module Spree
|
|
|
5
5
|
extend ActiveSupport::Concern
|
|
6
6
|
|
|
7
7
|
class_methods do
|
|
8
|
-
def find_price(product_or_variant, currency)
|
|
9
|
-
product_or_variant.
|
|
8
|
+
def find_price(product_or_variant, currency, context_options = {})
|
|
9
|
+
variant = product_or_variant.is_a?(Spree::Product) ? product_or_variant.default_variant : product_or_variant
|
|
10
|
+
|
|
11
|
+
if context_options.present?
|
|
12
|
+
context = build_pricing_context(variant, currency, context_options)
|
|
13
|
+
variant.price_for(context)
|
|
14
|
+
else
|
|
15
|
+
variant.price_in(currency)
|
|
16
|
+
end
|
|
10
17
|
end
|
|
11
18
|
|
|
12
|
-
def price(product_or_variant, currency)
|
|
13
|
-
price = find_price(product_or_variant, currency)
|
|
19
|
+
def price(product_or_variant, currency, context_options = {})
|
|
20
|
+
price = find_price(product_or_variant, currency, context_options)
|
|
14
21
|
return nil if price.new_record?
|
|
15
22
|
|
|
16
23
|
price.amount
|
|
17
24
|
end
|
|
18
25
|
|
|
19
|
-
def display_price(product_or_variant, currency)
|
|
20
|
-
price = find_price(product_or_variant, currency)
|
|
26
|
+
def display_price(product_or_variant, currency, context_options = {})
|
|
27
|
+
price = find_price(product_or_variant, currency, context_options)
|
|
21
28
|
return nil if price.new_record?
|
|
22
29
|
|
|
23
30
|
Spree::Money.new(price.amount, currency: currency).to_s
|
|
24
31
|
end
|
|
25
32
|
|
|
26
|
-
def compare_at_price(product_or_variant, currency)
|
|
27
|
-
price = find_price(product_or_variant, currency)
|
|
33
|
+
def compare_at_price(product_or_variant, currency, context_options = {})
|
|
34
|
+
price = find_price(product_or_variant, currency, context_options)
|
|
28
35
|
return nil if price.new_record? || price.compare_at_amount.blank?
|
|
29
36
|
|
|
30
37
|
price.compare_at_amount
|
|
31
38
|
end
|
|
32
39
|
|
|
33
|
-
def display_compare_at_price(product_or_variant, currency)
|
|
34
|
-
price = find_price(product_or_variant, currency)
|
|
40
|
+
def display_compare_at_price(product_or_variant, currency, context_options = {})
|
|
41
|
+
price = find_price(product_or_variant, currency, context_options)
|
|
35
42
|
return nil if price.new_record? || price.compare_at_amount.blank?
|
|
36
43
|
|
|
37
44
|
Spree::Money.new(price.compare_at_amount, currency: currency).to_s
|
|
38
45
|
end
|
|
46
|
+
|
|
47
|
+
private
|
|
48
|
+
|
|
49
|
+
def build_pricing_context(variant, currency, options)
|
|
50
|
+
Spree::Pricing::Context.new(
|
|
51
|
+
variant: variant,
|
|
52
|
+
currency: currency,
|
|
53
|
+
store: options[:store],
|
|
54
|
+
zone: options[:tax_zone] || options[:zone],
|
|
55
|
+
user: options[:user],
|
|
56
|
+
quantity: options[:quantity]
|
|
57
|
+
)
|
|
58
|
+
end
|
|
39
59
|
end
|
|
40
60
|
end
|
|
41
61
|
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Spree
|
|
4
|
+
class WebhookDeliveryJob < Spree::BaseJob
|
|
5
|
+
queue_as Spree.queues.webhooks
|
|
6
|
+
|
|
7
|
+
retry_on StandardError, wait: :polynomially_longer, attempts: 5
|
|
8
|
+
|
|
9
|
+
def perform(delivery_id, secret_key)
|
|
10
|
+
delivery = Spree::WebhookDelivery.find_by(id: delivery_id)
|
|
11
|
+
return if delivery.nil?
|
|
12
|
+
|
|
13
|
+
Spree::Webhooks::DeliverWebhook.call(delivery: delivery, secret_key: secret_key)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
require 'pagy'
|
|
2
|
+
|
|
3
|
+
module Spree
|
|
4
|
+
module Api
|
|
5
|
+
class Paginate
|
|
6
|
+
include Pagy::Method
|
|
7
|
+
|
|
8
|
+
def initialize(collection, params)
|
|
9
|
+
@collection = collection
|
|
10
|
+
@params = params
|
|
11
|
+
|
|
12
|
+
per_page_limit = Spree::Api::Config[:api_v2_per_page_limit]
|
|
13
|
+
@per_page = if params[:per_page].to_i.between?(1, per_page_limit)
|
|
14
|
+
params[:per_page].to_i
|
|
15
|
+
else
|
|
16
|
+
25
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def call
|
|
21
|
+
# Pass params as a hash-based request object for Pagy
|
|
22
|
+
# Pagy::Request accepts a hash with :params key
|
|
23
|
+
# Use to_unsafe_h for ActionController::Parameters, fallback to to_h for regular hashes
|
|
24
|
+
params_hash = @params.respond_to?(:to_unsafe_h) ? @params.to_unsafe_h : @params.to_h
|
|
25
|
+
request_hash = { params: params_hash }
|
|
26
|
+
|
|
27
|
+
# Uses countish paginator which is faster as it avoids COUNT queries
|
|
28
|
+
pagy, records = pagy(:countish, @collection, limit: @per_page, request: request_hash)
|
|
29
|
+
|
|
30
|
+
PagyCollection.new(records, pagy)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Wrapper providing Kaminari-compatible interface for CollectionOptionsHelpers
|
|
35
|
+
# Includes Enumerable so jsonapi-serializer detects it as a collection
|
|
36
|
+
class PagyCollection < SimpleDelegator
|
|
37
|
+
include Enumerable
|
|
38
|
+
|
|
39
|
+
attr_reader :pagy
|
|
40
|
+
|
|
41
|
+
def initialize(records, pagy)
|
|
42
|
+
super(records)
|
|
43
|
+
@pagy = pagy
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Enumerable requires #each to be defined
|
|
47
|
+
def each(&block)
|
|
48
|
+
__getobj__.each(&block)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def next_page
|
|
52
|
+
@pagy.next
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def prev_page
|
|
56
|
+
@pagy.previous
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def total_pages
|
|
60
|
+
@pagy.pages
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def total_count
|
|
64
|
+
@pagy.count
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -5,7 +5,7 @@ module Spree
|
|
|
5
5
|
extend ActiveSupport::Concern
|
|
6
6
|
|
|
7
7
|
included do
|
|
8
|
-
has_many :metafields, serializer: Spree
|
|
8
|
+
has_many :metafields, serializer: Spree.api.storefront_metafield_serializer,
|
|
9
9
|
record_type: :metafield,
|
|
10
10
|
object_method_name: :public_metafields
|
|
11
11
|
end
|
|
@@ -20,7 +20,7 @@ module Spree
|
|
|
20
20
|
|
|
21
21
|
metafield_enabled_resources = Spree::MetafieldDefinition.available_resources || []
|
|
22
22
|
if metafield_enabled_resources.map(&:name).include?(model_klazz.name) && model_klazz.method_defined?(:metafields)
|
|
23
|
-
base.has_many :metafields, serializer: Spree
|
|
23
|
+
base.has_many :metafields, serializer: Spree.api.platform_metafield_serializer,
|
|
24
24
|
record_type: :metafield,
|
|
25
25
|
object_method_name: :metafields
|
|
26
26
|
end
|
|
@@ -5,9 +5,9 @@ module Spree
|
|
|
5
5
|
class AddressSerializer < BaseSerializer
|
|
6
6
|
include ResourceSerializerConcern
|
|
7
7
|
|
|
8
|
-
belongs_to :country, serializer: Spree
|
|
9
|
-
belongs_to :state, serializer: Spree
|
|
10
|
-
belongs_to :user, serializer: Spree
|
|
8
|
+
belongs_to :country, serializer: Spree.api.platform_country_serializer
|
|
9
|
+
belongs_to :state, serializer: Spree.api.platform_state_serializer
|
|
10
|
+
belongs_to :user, serializer: Spree.api.platform_user_serializer
|
|
11
11
|
end
|
|
12
12
|
end
|
|
13
13
|
end
|
|
@@ -5,13 +5,13 @@ module Spree
|
|
|
5
5
|
class AdjustmentSerializer < BaseSerializer
|
|
6
6
|
include ResourceSerializerConcern
|
|
7
7
|
|
|
8
|
-
belongs_to :order, serializer: Spree
|
|
8
|
+
belongs_to :order, serializer: Spree.api.platform_order_serializer
|
|
9
9
|
belongs_to :adjustable, polymorphic: true
|
|
10
10
|
belongs_to :source, polymorphic: {
|
|
11
|
-
Spree::Promotion::Actions::FreeShipping => Spree
|
|
12
|
-
Spree::Promotion::Actions::CreateAdjustment => Spree
|
|
13
|
-
Spree::Promotion::Actions::CreateItemAdjustments => Spree
|
|
14
|
-
Spree::Promotion::Actions::CreateLineItems => Spree
|
|
11
|
+
Spree::Promotion::Actions::FreeShipping => Spree.api.platform_promotion_action_serializer,
|
|
12
|
+
Spree::Promotion::Actions::CreateAdjustment => Spree.api.platform_promotion_action_serializer,
|
|
13
|
+
Spree::Promotion::Actions::CreateItemAdjustments => Spree.api.platform_promotion_action_serializer,
|
|
14
|
+
Spree::Promotion::Actions::CreateLineItems => Spree.api.platform_promotion_action_serializer
|
|
15
15
|
}
|
|
16
16
|
end
|
|
17
17
|
end
|
|
@@ -5,8 +5,8 @@ module Spree
|
|
|
5
5
|
class ClassificationSerializer < BaseSerializer
|
|
6
6
|
include ResourceSerializerConcern
|
|
7
7
|
|
|
8
|
-
belongs_to :product, serializer: Spree
|
|
9
|
-
belongs_to :taxon, serializer: Spree
|
|
8
|
+
belongs_to :product, serializer: Spree.api.platform_product_serializer
|
|
9
|
+
belongs_to :taxon, serializer: Spree.api.platform_taxon_serializer
|
|
10
10
|
end
|
|
11
11
|
end
|
|
12
12
|
end
|
|
@@ -5,7 +5,7 @@ module Spree
|
|
|
5
5
|
class CountrySerializer < BaseSerializer
|
|
6
6
|
include ResourceSerializerConcern
|
|
7
7
|
|
|
8
|
-
has_many :states, serializer: Spree
|
|
8
|
+
has_many :states, serializer: Spree.api.platform_state_serializer
|
|
9
9
|
end
|
|
10
10
|
end
|
|
11
11
|
end
|
|
@@ -5,8 +5,8 @@ module Spree
|
|
|
5
5
|
class CreditCardSerializer < BaseSerializer
|
|
6
6
|
include ResourceSerializerConcern
|
|
7
7
|
|
|
8
|
-
belongs_to :payment_method, serializer: Spree
|
|
9
|
-
belongs_to :user, serializer: Spree
|
|
8
|
+
belongs_to :payment_method, serializer: Spree.api.platform_payment_method_serializer
|
|
9
|
+
belongs_to :user, serializer: Spree.api.platform_user_serializer
|
|
10
10
|
end
|
|
11
11
|
end
|
|
12
12
|
end
|
|
@@ -5,11 +5,11 @@ module Spree
|
|
|
5
5
|
class CustomerReturnSerializer < BaseSerializer
|
|
6
6
|
include ResourceSerializerConcern
|
|
7
7
|
|
|
8
|
-
belongs_to :stock_location, serializer: Spree
|
|
8
|
+
belongs_to :stock_location, serializer: Spree.api.platform_stock_location_serializer
|
|
9
9
|
|
|
10
|
-
has_many :reimbursements, serializer: Spree
|
|
11
|
-
has_many :return_items, serializer: Spree
|
|
12
|
-
has_many :return_authorizations, serializer: Spree
|
|
10
|
+
has_many :reimbursements, serializer: Spree.api.platform_reimbursement_serializer
|
|
11
|
+
has_many :return_items, serializer: Spree.api.platform_return_item_serializer
|
|
12
|
+
has_many :return_authorizations, serializer: Spree.api.platform_return_authorization_serializer
|
|
13
13
|
end
|
|
14
14
|
end
|
|
15
15
|
end
|