spree_api 4.1.10 → 4.2.0.rc2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/controllers/concerns/spree/api/v2/storefront/order_concern.rb +4 -0
- data/app/controllers/spree/api/base_controller.rb +1 -3
- data/app/controllers/spree/api/errors_controller.rb +1 -1
- data/app/controllers/spree/api/v1/taxons_controller.rb +6 -1
- data/app/controllers/spree/api/v1/users_controller.rb +35 -9
- data/app/controllers/spree/api/v2/base_controller.rb +6 -1
- data/app/controllers/spree/api/v2/storefront/account/orders_controller.rb +2 -2
- data/app/controllers/spree/api/v2/storefront/checkout_controller.rb +1 -2
- data/app/controllers/spree/api/v2/storefront/order_status_controller.rb +1 -1
- data/app/controllers/spree/api/v2/storefront/taxons_controller.rb +1 -1
- data/app/helpers/spree/api/api_helpers.rb +4 -3
- data/app/models/spree/api_dependencies.rb +2 -1
- data/app/serializers/spree/v2/storefront/address_serializer.rb +1 -1
- data/app/serializers/spree/v2/storefront/cart_serializer.rb +2 -1
- data/app/serializers/spree/v2/storefront/line_item_serializer.rb +2 -1
- data/app/serializers/spree/v2/storefront/product_serializer.rb +2 -2
- data/app/serializers/spree/v2/storefront/shipment_serializer.rb +1 -1
- data/app/serializers/spree/v2/storefront/store_serializer.rb +2 -0
- data/app/serializers/spree/v2/storefront/variant_serializer.rb +2 -2
- data/app/views/spree/api/v1/products/show.rabl +4 -0
- data/docs/v2/storefront/index.yaml +198 -12
- data/lib/spree/api/controller_setup.rb +0 -1
- data/lib/spree/api/testing_support/v2/base.rb +1 -1
- data/lib/spree/api/testing_support/v2/current_order.rb +4 -0
- data/spree_api.gemspec +1 -1
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 870bda309064df374e65aee63ddd2d7abb72004dbb6d218f0b1b77b7f5b0219f
|
4
|
+
data.tar.gz: e8fd20974f60d065473f2fb1303dd86221de56173f6a1e957c7efc8d5dba2aed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37e0a2ef4037067d2ffd5391d70b7c9fd6953d0529721e83ba7935755b1bca9515bc047e16525cae1df3d68e0815082f21e3e5579521f80259c717abe06d0b76
|
7
|
+
data.tar.gz: 87d24be4132f732043258a35db7b5398f3a63fe99908141e6bbba92786e5897a2c9c9ddf0c3ed5efa9b3da6b65a73f2ac5e4a895fc4bb69038ab5e597ece2932
|
@@ -34,6 +34,10 @@ module Spree
|
|
34
34
|
)
|
35
35
|
end
|
36
36
|
|
37
|
+
def supported_currencies
|
38
|
+
current_store.supported_currencies_list
|
39
|
+
end
|
40
|
+
|
37
41
|
def serialize_order(order)
|
38
42
|
resource_serializer.new(order.reload, include: resource_includes, fields: sparse_fields).serializable_hash
|
39
43
|
end
|
@@ -2,9 +2,7 @@ require_dependency 'spree/api/controller_setup'
|
|
2
2
|
|
3
3
|
module Spree
|
4
4
|
module Api
|
5
|
-
class BaseController < ActionController::
|
6
|
-
protect_from_forgery unless: -> { request.format.json? || request.format.xml? }
|
7
|
-
|
5
|
+
class BaseController < ActionController::API
|
8
6
|
include Spree::Api::ControllerSetup
|
9
7
|
include Spree::Core::ControllerHelpers::Store
|
10
8
|
include Spree::Core::ControllerHelpers::StrongParameters
|
@@ -74,7 +74,12 @@ module Spree
|
|
74
74
|
|
75
75
|
def taxonomy
|
76
76
|
if params[:taxonomy_id].present?
|
77
|
-
@taxonomy ||=
|
77
|
+
@taxonomy ||=
|
78
|
+
if defined?(SpreeGlobalize)
|
79
|
+
Spree::Taxonomy.includes(:translations, taxons: [:translations]).accessible_by(current_ability, :show).find(params[:taxonomy_id])
|
80
|
+
else
|
81
|
+
Spree::Taxonomy.accessible_by(current_ability, :show).find(params[:taxonomy_id])
|
82
|
+
end
|
78
83
|
end
|
79
84
|
end
|
80
85
|
|
@@ -5,22 +5,48 @@ module Spree
|
|
5
5
|
rescue_from Spree::Core::DestroyWithOrdersError, with: :error_during_processing
|
6
6
|
|
7
7
|
def index
|
8
|
-
|
8
|
+
users
|
9
9
|
|
10
10
|
if params[:ids]
|
11
|
-
|
12
|
-
elsif params
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
users_with_addresses_ids = (users_with_ship_address.ids + users_with_bill_address.ids).compact.uniq
|
17
|
-
@users = @users.with_email_or_addresses_ids(params[:q][:email_start], users_with_addresses_ids)
|
11
|
+
load_users_by_ids
|
12
|
+
elsif params.dig(:q, :ship_address_firstname_start)
|
13
|
+
load_users_by_address
|
14
|
+
elsif params.dig(:q, :email_start)
|
15
|
+
load_users_by_email
|
18
16
|
end
|
19
17
|
|
18
|
+
prepare_index_response
|
19
|
+
respond_with(@users)
|
20
|
+
end
|
21
|
+
|
22
|
+
def users
|
23
|
+
@users ||= Spree.user_class.accessible_by(current_ability, :show)
|
24
|
+
end
|
25
|
+
|
26
|
+
def load_users_by_ids
|
27
|
+
@users = @users.where(id: params[:ids])
|
28
|
+
end
|
29
|
+
|
30
|
+
def load_users_by_address
|
31
|
+
address_params = params[:q][:ship_address_firstname_start] ||
|
32
|
+
params[:q][:ship_address_lastname_start] ||
|
33
|
+
params[:q][:bill_address_firstname_start] ||
|
34
|
+
params[:q][:bill_address_lastname_start]
|
35
|
+
@users = @users.with_email_or_address(params[:q][:email_start], address_params)
|
36
|
+
end
|
37
|
+
|
38
|
+
def load_users_by_email
|
39
|
+
@users = @users.with_email(params[:q][:email_start])
|
40
|
+
end
|
41
|
+
|
42
|
+
def paginate_users
|
20
43
|
@users = @users.page(params[:page]).per(params[:per_page])
|
44
|
+
end
|
45
|
+
|
46
|
+
def prepare_index_response
|
47
|
+
paginate_users
|
21
48
|
expires_in 15.minutes, public: true
|
22
49
|
headers['Surrogate-Control'] = "max-age=#{15.minutes}"
|
23
|
-
respond_with(@users)
|
24
50
|
end
|
25
51
|
|
26
52
|
def show
|
@@ -53,7 +53,12 @@ module Spree
|
|
53
53
|
end
|
54
54
|
|
55
55
|
def spree_current_user
|
56
|
-
|
56
|
+
return nil unless doorkeeper_token
|
57
|
+
return @spree_current_user if @spree_current_user
|
58
|
+
|
59
|
+
doorkeeper_authorize!
|
60
|
+
|
61
|
+
@spree_current_user ||= Spree.user_class.find_by(id: doorkeeper_token.resource_owner_id)
|
57
62
|
end
|
58
63
|
|
59
64
|
def spree_authorize!(action, subject, *args)
|
@@ -35,11 +35,11 @@ module Spree
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def collection_serializer
|
38
|
-
Spree::Api::Dependencies.
|
38
|
+
Spree::Api::Dependencies.storefront_order_serializer.constantize
|
39
39
|
end
|
40
40
|
|
41
41
|
def resource_serializer
|
42
|
-
Spree::Api::Dependencies.
|
42
|
+
Spree::Api::Dependencies.storefront_order_serializer.constantize
|
43
43
|
end
|
44
44
|
|
45
45
|
def collection_finder
|
@@ -125,8 +125,7 @@ module Spree
|
|
125
125
|
def serialize_shipping_rates(shipments)
|
126
126
|
shipping_rates_serializer.new(
|
127
127
|
shipments,
|
128
|
-
include: [:shipping_rates, :stock_location]
|
129
|
-
params: { show_rates: true }
|
128
|
+
include: [:shipping_rates, :stock_location]
|
130
129
|
).serializable_hash
|
131
130
|
end
|
132
131
|
end
|
@@ -116,7 +116,7 @@ module Spree
|
|
116
116
|
@@address_attributes = [
|
117
117
|
:id, :firstname, :lastname, :full_name, :address1, :address2, :city,
|
118
118
|
:zipcode, :phone, :company, :alternative_phone, :country_id, :state_id,
|
119
|
-
:state_name, :state_text
|
119
|
+
:label, :state_name, :state_text
|
120
120
|
]
|
121
121
|
|
122
122
|
@@country_attributes = [:id, :iso_name, :iso, :iso3, :name, :numcode]
|
@@ -161,8 +161,9 @@ module Spree
|
|
161
161
|
|
162
162
|
@@store_attributes = [
|
163
163
|
:id, :name, :url, :meta_description, :meta_keywords, :seo_title,
|
164
|
-
:mail_from_address, :
|
165
|
-
:facebook, :twitter, :instagram
|
164
|
+
:mail_from_address, :customer_support_email, :default_currency,
|
165
|
+
:code, :default, :facebook, :twitter, :instagram,
|
166
|
+
:supported_currencies
|
166
167
|
]
|
167
168
|
|
168
169
|
@@tag_attributes = [:id, :name]
|
@@ -14,7 +14,7 @@ module Spree
|
|
14
14
|
:storefront_collection_paginator, :storefront_user_serializer, :storefront_products_sorter, :storefront_products_finder,
|
15
15
|
:storefront_product_serializer, :storefront_taxon_serializer, :storefront_taxon_finder, :storefront_find_by_variant_finder,
|
16
16
|
:storefront_cart_update_service, :storefront_cart_estimate_shipping_rates_service, :storefront_estimated_shipment_serializer,
|
17
|
-
:storefront_store_serializer, :storefront_address_serializer,
|
17
|
+
:storefront_store_serializer, :storefront_address_serializer, :storefront_order_serializer,
|
18
18
|
:storefront_account_create_address_service, :storefront_account_update_address_service, :storefront_address_finder
|
19
19
|
].freeze
|
20
20
|
|
@@ -66,6 +66,7 @@ module Spree
|
|
66
66
|
@storefront_product_serializer = 'Spree::V2::Storefront::ProductSerializer'
|
67
67
|
@storefront_estimated_shipment_serializer = 'Spree::V2::Storefront::EstimatedShippingRateSerializer'
|
68
68
|
@storefront_store_serializer = 'Spree::V2::Storefront::StoreSerializer'
|
69
|
+
@storefront_order_serializer = 'Spree::V2::Storefront::CartSerializer'
|
69
70
|
|
70
71
|
# sorters
|
71
72
|
@storefront_order_sorter = Spree::Dependencies.order_sorter
|
@@ -5,7 +5,7 @@ module Spree
|
|
5
5
|
set_type :address
|
6
6
|
|
7
7
|
attributes :firstname, :lastname, :address1, :address2, :city, :zipcode, :phone, :state_name,
|
8
|
-
:company, :country_name, :country_iso3, :country_iso
|
8
|
+
:company, :country_name, :country_iso3, :country_iso, :label
|
9
9
|
|
10
10
|
attribute :state_code, &:state_abbr
|
11
11
|
attribute :state_name, &:state_name_text
|
@@ -8,7 +8,8 @@ module Spree
|
|
8
8
|
:updated_at, :completed_at, :included_tax_total, :additional_tax_total, :display_additional_tax_total,
|
9
9
|
:display_included_tax_total, :tax_total, :currency, :state, :token, :email,
|
10
10
|
:display_item_total, :display_ship_total, :display_adjustment_total, :display_tax_total,
|
11
|
-
:promo_total, :display_promo_total, :item_count, :special_instructions, :display_total
|
11
|
+
:promo_total, :display_promo_total, :item_count, :special_instructions, :display_total,
|
12
|
+
:pre_tax_item_amount, :display_pre_tax_item_amount, :pre_tax_total, :display_pre_tax_total
|
12
13
|
|
13
14
|
has_many :line_items
|
14
15
|
has_many :variants
|
@@ -9,7 +9,8 @@ module Spree
|
|
9
9
|
:display_adjustment_total, :additional_tax_total,
|
10
10
|
:discounted_amount, :display_discounted_amount,
|
11
11
|
:display_additional_tax_total, :promo_total, :display_promo_total,
|
12
|
-
:included_tax_total, :display_included_tax_total
|
12
|
+
:included_tax_total, :display_included_tax_total,
|
13
|
+
:pre_tax_amount, :display_pre_tax_amount
|
13
14
|
|
14
15
|
belongs_to :variant
|
15
16
|
end
|
@@ -5,8 +5,8 @@ module Spree
|
|
5
5
|
set_type :product
|
6
6
|
|
7
7
|
attributes :name, :description, :price, :currency, :display_price,
|
8
|
-
:
|
9
|
-
:updated_at
|
8
|
+
:compare_at_price, :display_compare_at_price, :available_on,
|
9
|
+
:slug, :meta_description, :meta_keywords, :updated_at
|
10
10
|
|
11
11
|
attribute :purchasable, &:purchasable?
|
12
12
|
attribute :in_stock, &:in_stock?
|
@@ -7,6 +7,8 @@ module Spree
|
|
7
7
|
attributes :name, :url, :meta_description, :meta_keywords, :seo_title, :default_currency, :default, :supported_currencies, :facebook,
|
8
8
|
:twitter, :instagram, :default_locale, :customer_support_email, :default_country_id, :description,
|
9
9
|
:address, :contact_phone, :contact_email
|
10
|
+
|
11
|
+
has_one :default_country, serializer: :country, record_type: :country, id_method_name: :default_country_id
|
10
12
|
end
|
11
13
|
end
|
12
14
|
end
|
@@ -4,8 +4,8 @@ module Spree
|
|
4
4
|
class VariantSerializer < BaseSerializer
|
5
5
|
set_type :variant
|
6
6
|
|
7
|
-
attributes :
|
8
|
-
:width, :depth, :is_master, :options_text
|
7
|
+
attributes :sku, :price, :currency, :display_price, :weight, :height,
|
8
|
+
:width, :depth, :is_master, :options_text
|
9
9
|
|
10
10
|
attribute :purchasable, &:purchasable?
|
11
11
|
attribute :in_stock, &:in_stock?
|
@@ -6,6 +6,10 @@ attributes *product_attributes
|
|
6
6
|
node(:display_price) { |p| p.display_price.to_s }
|
7
7
|
node(:has_variants, &:has_variants?)
|
8
8
|
node(:taxon_ids, &:taxon_ids)
|
9
|
+
node(:display_current_currency_price) do |product|
|
10
|
+
price = product.price_in(current_currency)
|
11
|
+
Spree::Money.new(price.amount, currency: current_currency).to_s
|
12
|
+
end
|
9
13
|
|
10
14
|
child master: :master do
|
11
15
|
extends 'spree/api/v1/variants/small'
|
@@ -49,7 +49,167 @@ paths:
|
|
49
49
|
$ref: '#/components/responses/403Forbidden'
|
50
50
|
security:
|
51
51
|
- bearerAuth: []
|
52
|
+
post:
|
53
|
+
description: >-
|
54
|
+
Creates a new account
|
52
55
|
|
56
|
+
This endpoint requires [Spree Auth Devise](https://github.com/spree/spree_auth_devise) gem installed
|
57
|
+
tags:
|
58
|
+
- Account
|
59
|
+
operationId: 'Account Creation'
|
60
|
+
requestBody:
|
61
|
+
required: true
|
62
|
+
content:
|
63
|
+
application/vnd.api+json:
|
64
|
+
schema:
|
65
|
+
type: object
|
66
|
+
properties:
|
67
|
+
user:
|
68
|
+
type: object
|
69
|
+
properties:
|
70
|
+
email:
|
71
|
+
type: string
|
72
|
+
example: 'john@snow.org'
|
73
|
+
password:
|
74
|
+
type: string
|
75
|
+
example: 'spree123'
|
76
|
+
password_confirmation:
|
77
|
+
type: string
|
78
|
+
example: 'spree123'
|
79
|
+
responses:
|
80
|
+
'200':
|
81
|
+
description: ok
|
82
|
+
content:
|
83
|
+
application/vnd.api+json:
|
84
|
+
schema:
|
85
|
+
$ref: '#/components/schemas/Account'
|
86
|
+
'422':
|
87
|
+
description: Validation errors
|
88
|
+
content:
|
89
|
+
application/vnd.api+json:
|
90
|
+
schema:
|
91
|
+
$ref: '#/components/schemas/Error'
|
92
|
+
patch:
|
93
|
+
description: >-
|
94
|
+
Updates user account
|
95
|
+
|
96
|
+
This endpoint requires [Spree Auth Devise](https://github.com/spree/spree_auth_devise) gem installed
|
97
|
+
tags:
|
98
|
+
- Account
|
99
|
+
operationId: 'Account Updates'
|
100
|
+
requestBody:
|
101
|
+
required: true
|
102
|
+
content:
|
103
|
+
application/vnd.api+json:
|
104
|
+
schema:
|
105
|
+
type: object
|
106
|
+
properties:
|
107
|
+
user:
|
108
|
+
type: object
|
109
|
+
properties:
|
110
|
+
email:
|
111
|
+
type: string
|
112
|
+
example: 'john@snow.org'
|
113
|
+
password:
|
114
|
+
type: string
|
115
|
+
example: 'spree123'
|
116
|
+
password_confirmation:
|
117
|
+
type: string
|
118
|
+
example: 'spree123'
|
119
|
+
responses:
|
120
|
+
'200':
|
121
|
+
description: ok
|
122
|
+
content:
|
123
|
+
application/vnd.api+json:
|
124
|
+
schema:
|
125
|
+
$ref: '#/components/schemas/Account'
|
126
|
+
'422':
|
127
|
+
description: Validation errors
|
128
|
+
content:
|
129
|
+
application/vnd.api+json:
|
130
|
+
schema:
|
131
|
+
$ref: '#/components/schemas/Error'
|
132
|
+
security:
|
133
|
+
- bearerAuth: []
|
134
|
+
'/account/addresses':
|
135
|
+
get:
|
136
|
+
description: >-
|
137
|
+
Returns a list of Addresses for the signed in User
|
138
|
+
tags:
|
139
|
+
- Account
|
140
|
+
operationId: 'Addresses list'
|
141
|
+
responses:
|
142
|
+
'200':
|
143
|
+
description: Listing user addresses.
|
144
|
+
content:
|
145
|
+
application/vnd.api+json:
|
146
|
+
schema:
|
147
|
+
$ref: '#/components/schemas/AddressList'
|
148
|
+
'403':
|
149
|
+
$ref: '#/components/responses/403Forbidden'
|
150
|
+
security:
|
151
|
+
- bearerAuth: []
|
152
|
+
post:
|
153
|
+
description: >-
|
154
|
+
Create a new Address for the signed in User
|
155
|
+
tags:
|
156
|
+
- Account
|
157
|
+
operationId: 'Create Address'
|
158
|
+
requestBody:
|
159
|
+
required: true
|
160
|
+
content:
|
161
|
+
application/vnd.api+json:
|
162
|
+
schema:
|
163
|
+
type: object
|
164
|
+
properties:
|
165
|
+
address:
|
166
|
+
$ref: '#/components/schemas/AddressPayload'
|
167
|
+
responses:
|
168
|
+
'200':
|
169
|
+
description: Created Address.
|
170
|
+
content:
|
171
|
+
application/vnd.api+json:
|
172
|
+
schema:
|
173
|
+
$ref: '#/components/schemas/AddressList'
|
174
|
+
'403':
|
175
|
+
$ref: '#/components/responses/403Forbidden'
|
176
|
+
security:
|
177
|
+
- bearerAuth: []
|
178
|
+
'/account/addresses/{id}':
|
179
|
+
patch:
|
180
|
+
description: >-
|
181
|
+
Update selected Address for the signed in User
|
182
|
+
tags:
|
183
|
+
- Account
|
184
|
+
operationId: 'Update Address'
|
185
|
+
parameters:
|
186
|
+
- name: id
|
187
|
+
in: path
|
188
|
+
required: true
|
189
|
+
description: Selected Address for update
|
190
|
+
schema:
|
191
|
+
type: string
|
192
|
+
example: '1'
|
193
|
+
requestBody:
|
194
|
+
required: true
|
195
|
+
content:
|
196
|
+
application/vnd.api+json:
|
197
|
+
schema:
|
198
|
+
type: object
|
199
|
+
properties:
|
200
|
+
address:
|
201
|
+
$ref: '#/components/schemas/AddressPayload'
|
202
|
+
responses:
|
203
|
+
'200':
|
204
|
+
description: Updated Address.
|
205
|
+
content:
|
206
|
+
application/vnd.api+json:
|
207
|
+
schema:
|
208
|
+
$ref: '#/components/schemas/AddressList'
|
209
|
+
'403':
|
210
|
+
$ref: '#/components/responses/403Forbidden'
|
211
|
+
security:
|
212
|
+
- bearerAuth: []
|
53
213
|
'/account/credit_cards':
|
54
214
|
get:
|
55
215
|
description: >-
|
@@ -1299,6 +1459,18 @@ components:
|
|
1299
1459
|
display_tax_total:
|
1300
1460
|
type: string
|
1301
1461
|
example: '$10.00'
|
1462
|
+
pre_tax_item_amount:
|
1463
|
+
type: string
|
1464
|
+
example: '17.00'
|
1465
|
+
display_pre_tax_item_amount:
|
1466
|
+
type: string
|
1467
|
+
example: '$17.00'
|
1468
|
+
pre_tax_total:
|
1469
|
+
type: string
|
1470
|
+
example: '20.00'
|
1471
|
+
display_pre_tax_total:
|
1472
|
+
type: string
|
1473
|
+
example: '$20.00'
|
1302
1474
|
item_count:
|
1303
1475
|
type: number
|
1304
1476
|
example: 2
|
@@ -1511,6 +1683,12 @@ components:
|
|
1511
1683
|
display_discounted_amount:
|
1512
1684
|
type: string
|
1513
1685
|
example: '$125.00'
|
1686
|
+
pre_tax_amount:
|
1687
|
+
type: string
|
1688
|
+
example: '125.0'
|
1689
|
+
display_pre_tax_amount:
|
1690
|
+
type: string
|
1691
|
+
example: '$125.00'
|
1514
1692
|
promo_total:
|
1515
1693
|
type: string
|
1516
1694
|
example: '-5.0'
|
@@ -2011,10 +2189,6 @@ components:
|
|
2011
2189
|
VariantAttributes:
|
2012
2190
|
type: object
|
2013
2191
|
properties:
|
2014
|
-
name:
|
2015
|
-
type: string
|
2016
|
-
example: 'Example product'
|
2017
|
-
description: 'Product name'
|
2018
2192
|
sku:
|
2019
2193
|
type: string
|
2020
2194
|
example: 'SKU-1001'
|
@@ -2046,14 +2220,6 @@ components:
|
|
2046
2220
|
options_text:
|
2047
2221
|
type: string
|
2048
2222
|
example: 'Size: small, Color: red'
|
2049
|
-
slug:
|
2050
|
-
type: string
|
2051
|
-
example: 'example-product'
|
2052
|
-
description: 'Product slug'
|
2053
|
-
description:
|
2054
|
-
type: string
|
2055
|
-
example: 'Example description'
|
2056
|
-
description: 'Product description'
|
2057
2223
|
purchasable:
|
2058
2224
|
type: boolean
|
2059
2225
|
example: true
|
@@ -2226,6 +2392,11 @@ components:
|
|
2226
2392
|
$ref: '#/components/schemas/ShipmentAttributes'
|
2227
2393
|
relationships:
|
2228
2394
|
properties:
|
2395
|
+
stock_location:
|
2396
|
+
type: object
|
2397
|
+
properties:
|
2398
|
+
data:
|
2399
|
+
$ref: '#/components/schemas/Relation'
|
2229
2400
|
shipping_rates:
|
2230
2401
|
properties:
|
2231
2402
|
data:
|
@@ -2281,6 +2452,7 @@ components:
|
|
2281
2452
|
items:
|
2282
2453
|
oneOf:
|
2283
2454
|
- $ref: '#/components/schemas/ShippingRate'
|
2455
|
+
- $ref: '#/components/schemas/StockLocation'
|
2284
2456
|
EstimateShippingRatesList:
|
2285
2457
|
required:
|
2286
2458
|
- data
|
@@ -2335,6 +2507,20 @@ components:
|
|
2335
2507
|
type: integer
|
2336
2508
|
example: 1
|
2337
2509
|
description: 'ID of a Shipping Method. You will need this for the Checkout Update action'
|
2510
|
+
StockLocation:
|
2511
|
+
properties:
|
2512
|
+
id:
|
2513
|
+
type: string
|
2514
|
+
example: '1'
|
2515
|
+
type:
|
2516
|
+
type: string
|
2517
|
+
default: 'stock_location'
|
2518
|
+
attributes:
|
2519
|
+
type: object
|
2520
|
+
properties:
|
2521
|
+
name:
|
2522
|
+
type: string
|
2523
|
+
example: 'Main Warehouse'
|
2338
2524
|
Account:
|
2339
2525
|
required:
|
2340
2526
|
- data
|
@@ -6,7 +6,6 @@ module Spree
|
|
6
6
|
def self.included(klass)
|
7
7
|
klass.class_eval do
|
8
8
|
include CanCan::ControllerAdditions
|
9
|
-
include Spree::Core::ControllerHelpers::Auth
|
10
9
|
|
11
10
|
prepend_view_path Rails.root + 'app/views'
|
12
11
|
append_view_path File.expand_path('../../../app/views', File.dirname(__FILE__))
|
@@ -4,7 +4,7 @@ shared_context 'API v2 tokens' do
|
|
4
4
|
let(:headers_order_token) { { 'X-Spree-Order-Token' => order.token } }
|
5
5
|
end
|
6
6
|
|
7
|
-
[200, 201, 400, 404, 403, 422].each do |status_code|
|
7
|
+
[200, 201, 400, 401, 404, 403, 422].each do |status_code|
|
8
8
|
shared_examples "returns #{status_code} HTTP status" do
|
9
9
|
it "returns #{status_code}" do
|
10
10
|
expect(response.status).to eq(status_code)
|
@@ -48,6 +48,10 @@ shared_examples 'returns valid cart JSON' do
|
|
48
48
|
expect(json_response['data']).to have_attribute(:promo_total).with_value(order.promo_total.to_s)
|
49
49
|
expect(json_response['data']).to have_attribute(:display_promo_total).with_value(order.display_promo_total.to_s)
|
50
50
|
expect(json_response['data']).to have_attribute(:display_total).with_value(order.display_total.to_s)
|
51
|
+
expect(json_response['data']).to have_attribute(:pre_tax_item_amount).with_value(order.pre_tax_item_amount.to_s)
|
52
|
+
expect(json_response['data']).to have_attribute(:display_pre_tax_item_amount).with_value(order.display_pre_tax_item_amount.to_s)
|
53
|
+
expect(json_response['data']).to have_attribute(:pre_tax_total).with_value(order.pre_tax_total.to_s)
|
54
|
+
expect(json_response['data']).to have_attribute(:display_pre_tax_total).with_value(order.display_pre_tax_total.to_s)
|
51
55
|
expect(json_response['data']).to have_relationships(:user, :line_items, :variants, :billing_address, :shipping_address, :payments, :shipments, :promotions)
|
52
56
|
end
|
53
57
|
end
|
data/spree_api.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.email = ["ryan@spreecommerce.com"]
|
9
9
|
s.summary = %q{Spree's API}
|
10
10
|
s.description = %q{Spree's API}
|
11
|
-
s.homepage = '
|
11
|
+
s.homepage = 'https://spreecommerce.org'
|
12
12
|
s.license = 'BSD-3-Clause'
|
13
13
|
|
14
14
|
s.metadata = {
|
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: 4.
|
4
|
+
version: 4.2.0.rc2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Bigg
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jsonapi-rspec
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 4.
|
33
|
+
version: 4.2.0.rc2
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 4.
|
40
|
+
version: 4.2.0.rc2
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rabl
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -301,15 +301,15 @@ files:
|
|
301
301
|
- script/rails
|
302
302
|
- spec/fixtures/thinking-cat.jpg
|
303
303
|
- spree_api.gemspec
|
304
|
-
homepage:
|
304
|
+
homepage: https://spreecommerce.org
|
305
305
|
licenses:
|
306
306
|
- BSD-3-Clause
|
307
307
|
metadata:
|
308
308
|
bug_tracker_uri: https://github.com/spree/spree/issues
|
309
|
-
changelog_uri: https://github.com/spree/spree/releases/tag/v4.
|
309
|
+
changelog_uri: https://github.com/spree/spree/releases/tag/v4.2.0.rc2
|
310
310
|
documentation_uri: https://guides.spreecommerce.org/
|
311
|
-
source_code_uri: https://github.com/spree/spree/tree/v4.
|
312
|
-
post_install_message:
|
311
|
+
source_code_uri: https://github.com/spree/spree/tree/v4.2.0.rc2
|
312
|
+
post_install_message:
|
313
313
|
rdoc_options: []
|
314
314
|
require_paths:
|
315
315
|
- lib
|
@@ -320,12 +320,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
320
320
|
version: 2.5.0
|
321
321
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
322
322
|
requirements:
|
323
|
-
- - "
|
323
|
+
- - ">"
|
324
324
|
- !ruby/object:Gem::Version
|
325
|
-
version:
|
325
|
+
version: 1.3.1
|
326
326
|
requirements: []
|
327
327
|
rubygems_version: 3.1.2
|
328
|
-
signing_key:
|
328
|
+
signing_key:
|
329
329
|
specification_version: 4
|
330
330
|
summary: Spree's API
|
331
331
|
test_files: []
|