spree_api 3.0.0 → 3.0.1
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/base_controller.rb +7 -4
- data/app/controllers/spree/api/checkouts_controller.rb +2 -2
- data/app/controllers/spree/api/countries_controller.rb +3 -3
- data/app/controllers/spree/api/images_controller.rb +2 -2
- data/app/controllers/spree/api/inventory_units_controller.rb +1 -1
- data/app/controllers/spree/api/orders_controller.rb +4 -4
- data/app/controllers/spree/api/payments_controller.rb +1 -1
- data/app/controllers/spree/api/product_properties_controller.rb +1 -1
- data/app/controllers/spree/api/products_controller.rb +4 -4
- data/app/controllers/spree/api/properties_controller.rb +1 -1
- data/app/controllers/spree/api/return_authorizations_controller.rb +4 -4
- data/app/controllers/spree/api/states_controller.rb +2 -2
- data/app/controllers/spree/api/stock_items_controller.rb +4 -4
- data/app/controllers/spree/api/stock_locations_controller.rb +5 -5
- data/app/controllers/spree/api/stock_movements_controller.rb +3 -3
- data/app/controllers/spree/api/stores_controller.rb +5 -5
- data/app/controllers/spree/api/taxonomies_controller.rb +4 -4
- data/app/controllers/spree/api/taxons_controller.rb +1 -1
- data/app/controllers/spree/api/variants_controller.rb +3 -3
- data/app/controllers/spree/api/zones_controller.rb +3 -3
- data/app/views/spree/api/variants/big.v1.rabl +0 -6
- data/lib/spree/api/testing_support/helpers.rb +1 -1
- data/lib/spree/api/testing_support/setup.rb +1 -1
- data/spec/controllers/spree/api/products_controller_spec.rb +7 -0
- data/spec/controllers/spree/api/users_controller_spec.rb +1 -1
- data/spec/controllers/spree/api/variants_controller_spec.rb +13 -2
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ef00fcd9a6f5ff3573c20c99509035edf9b49e66
|
4
|
+
data.tar.gz: 8b036132ce0f23d36d5cb58e283187ee17519066
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 70a31fa7caf0a0107ad2141582fa3ee166666789ff1202bf6082d72e7b8509af7a4f014cc1c7efc4985cf9e8bda1dbacaf93df443746b59b1ffca76d78865d5b
|
7
|
+
data.tar.gz: ce8f5e35409bb3593a2db354456761ab3dfdea846a454c94e1590039d8ef1a249f183f6ff48e0773112a2fd6cea7e5f8122f13285c7aa82690ee89e10f0e0514
|
@@ -42,15 +42,18 @@ module Spree
|
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
|
-
|
46
|
-
|
47
|
-
def set_content_type
|
48
|
-
content_type = case params[:format]
|
45
|
+
def content_type
|
46
|
+
case params[:format]
|
49
47
|
when "json"
|
50
48
|
"application/json; charset=utf-8"
|
51
49
|
when "xml"
|
52
50
|
"text/xml; charset=utf-8"
|
53
51
|
end
|
52
|
+
end
|
53
|
+
|
54
|
+
private
|
55
|
+
|
56
|
+
def set_content_type
|
54
57
|
headers["Content-Type"] = content_type
|
55
58
|
end
|
56
59
|
|
@@ -52,7 +52,7 @@ module Spree
|
|
52
52
|
end
|
53
53
|
|
54
54
|
def nested_params
|
55
|
-
map_nested_attributes_keys Order, params[:order] || {}
|
55
|
+
map_nested_attributes_keys Spree::Order, params[:order] || {}
|
56
56
|
end
|
57
57
|
|
58
58
|
# Should be overriden if you have areas of your checkout that don't match
|
@@ -79,7 +79,7 @@ module Spree
|
|
79
79
|
|
80
80
|
def after_update_attributes
|
81
81
|
if nested_params && nested_params[:coupon_code].present?
|
82
|
-
handler = PromotionHandler::Coupon.new(@order).apply
|
82
|
+
handler = Spree::PromotionHandler::Coupon.new(@order).apply
|
83
83
|
|
84
84
|
if handler.error.present?
|
85
85
|
@coupon_message = handler.error
|
@@ -5,17 +5,17 @@ module Spree
|
|
5
5
|
skip_before_action :authenticate_user
|
6
6
|
|
7
7
|
def index
|
8
|
-
@countries = Country.accessible_by(current_ability, :read).ransack(params[:q]).result.
|
8
|
+
@countries = Spree::Country.accessible_by(current_ability, :read).ransack(params[:q]).result.
|
9
9
|
includes(:states).order('name ASC').
|
10
10
|
page(params[:page]).per(params[:per_page])
|
11
|
-
country = Country.order("updated_at ASC").last
|
11
|
+
country = Spree::Country.order("updated_at ASC").last
|
12
12
|
if stale?(country)
|
13
13
|
respond_with(@countries)
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
17
|
def show
|
18
|
-
@country = Country.accessible_by(current_ability, :read).find(params[:id])
|
18
|
+
@country = Spree::Country.accessible_by(current_ability, :read).find(params[:id])
|
19
19
|
respond_with(@country)
|
20
20
|
end
|
21
21
|
end
|
@@ -8,12 +8,12 @@ module Spree
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def show
|
11
|
-
@image = Image.accessible_by(current_ability, :read).find(params[:id])
|
11
|
+
@image = Spree::Image.accessible_by(current_ability, :read).find(params[:id])
|
12
12
|
respond_with(@image)
|
13
13
|
end
|
14
14
|
|
15
15
|
def create
|
16
|
-
authorize! :create, Image
|
16
|
+
authorize! :create, Spree::Image
|
17
17
|
@image = scope.images.create(image_params)
|
18
18
|
respond_with(@image, :status => 201, :default_template => :show)
|
19
19
|
end
|
@@ -24,7 +24,7 @@ module Spree
|
|
24
24
|
private
|
25
25
|
|
26
26
|
def inventory_unit
|
27
|
-
@inventory_unit ||= InventoryUnit.accessible_by(current_ability, :read).find(params[:id])
|
27
|
+
@inventory_unit ||= Spree::InventoryUnit.accessible_by(current_ability, :read).find(params[:id])
|
28
28
|
end
|
29
29
|
|
30
30
|
def prepare_event
|
@@ -7,7 +7,7 @@ module Spree
|
|
7
7
|
before_action :find_order, except: [:create, :mine, :current, :index, :update]
|
8
8
|
|
9
9
|
# Dynamically defines our stores checkout steps to ensure we check authorization on each step.
|
10
|
-
Order.checkout_steps.keys.each do |step|
|
10
|
+
Spree::Order.checkout_steps.keys.each do |step|
|
11
11
|
define_method step do
|
12
12
|
find_order
|
13
13
|
authorize! :update, @order, params[:token]
|
@@ -21,7 +21,7 @@ module Spree
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def create
|
24
|
-
authorize! :create, Order
|
24
|
+
authorize! :create, Spree::Order
|
25
25
|
order_user = if @current_user_roles.include?('admin') && order_params[:user_id]
|
26
26
|
Spree.user_class.find(order_params[:user_id])
|
27
27
|
else
|
@@ -46,7 +46,7 @@ module Spree
|
|
46
46
|
|
47
47
|
def index
|
48
48
|
authorize! :index, Order
|
49
|
-
@orders = Order.ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
|
49
|
+
@orders = Spree::Order.ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
|
50
50
|
respond_with(@orders)
|
51
51
|
end
|
52
52
|
|
@@ -91,7 +91,7 @@ module Spree
|
|
91
91
|
find_order
|
92
92
|
authorize! :update, @order, order_token
|
93
93
|
@order.coupon_code = params[:coupon_code]
|
94
|
-
@handler = PromotionHandler::Coupon.new(@order).apply
|
94
|
+
@handler = Spree::PromotionHandler::Coupon.new(@order).apply
|
95
95
|
status = @handler.successful? ? 200 : 422
|
96
96
|
render "spree/api/promotions/handler", :status => status
|
97
97
|
end
|
@@ -20,7 +20,7 @@ module Spree
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def create
|
23
|
-
authorize! :create, ProductProperty
|
23
|
+
authorize! :create, Spree::ProductProperty
|
24
24
|
@product_property = @product.product_properties.new(product_property_params)
|
25
25
|
if @product_property.save
|
26
26
|
respond_with(@product_property, status: 201, default_template: :show)
|
@@ -57,12 +57,12 @@ module Spree
|
|
57
57
|
# }
|
58
58
|
#
|
59
59
|
def create
|
60
|
-
authorize! :create, Product
|
60
|
+
authorize! :create, Spree::Product
|
61
61
|
params[:product][:available_on] ||= Time.now
|
62
62
|
set_up_shipping_category
|
63
63
|
|
64
64
|
options = { variants_attrs: variants_params, options_attrs: option_types_params }
|
65
|
-
@product = Core::Importer::Product.new(nil, product_params, options).create
|
65
|
+
@product = Spree::Core::Importer::Product.new(nil, product_params, options).create
|
66
66
|
|
67
67
|
if @product.persisted?
|
68
68
|
respond_with(@product, :status => 201, :default_template => :show)
|
@@ -76,7 +76,7 @@ module Spree
|
|
76
76
|
authorize! :update, @product
|
77
77
|
|
78
78
|
options = { variants_attrs: variants_params, options_attrs: option_types_params }
|
79
|
-
@product = Core::Importer::Product.new(@product, product_params, options).update
|
79
|
+
@product = Spree::Core::Importer::Product.new(@product, product_params, options).update
|
80
80
|
|
81
81
|
if @product.errors.empty?
|
82
82
|
respond_with(@product.reload, :status => 200, :default_template => :show)
|
@@ -119,7 +119,7 @@ module Spree
|
|
119
119
|
|
120
120
|
def set_up_shipping_category
|
121
121
|
if shipping_category = params[:product].delete(:shipping_category)
|
122
|
-
id = ShippingCategory.find_or_create_by(name: shipping_category).id
|
122
|
+
id = Spree::ShippingCategory.find_or_create_by(name: shipping_category).id
|
123
123
|
params[:product][:shipping_category_id] = id
|
124
124
|
end
|
125
125
|
end
|
@@ -3,7 +3,7 @@ module Spree
|
|
3
3
|
class ReturnAuthorizationsController < Spree::Api::BaseController
|
4
4
|
|
5
5
|
def create
|
6
|
-
authorize! :create, ReturnAuthorization
|
6
|
+
authorize! :create, Spree::ReturnAuthorization
|
7
7
|
@return_authorization = order.return_authorizations.build(return_authorization_params)
|
8
8
|
if @return_authorization.save
|
9
9
|
respond_with(@return_authorization, status: 201, default_template: :show)
|
@@ -19,7 +19,7 @@ module Spree
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def index
|
22
|
-
authorize! :admin, ReturnAuthorization
|
22
|
+
authorize! :admin, Spree::ReturnAuthorization
|
23
23
|
@return_authorizations = order.return_authorizations.accessible_by(current_ability, :read).
|
24
24
|
ransack(params[:q]).result.
|
25
25
|
page(params[:page]).per(params[:per_page])
|
@@ -27,11 +27,11 @@ module Spree
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def new
|
30
|
-
authorize! :admin, ReturnAuthorization
|
30
|
+
authorize! :admin, Spree::ReturnAuthorization
|
31
31
|
end
|
32
32
|
|
33
33
|
def show
|
34
|
-
authorize! :admin, ReturnAuthorization
|
34
|
+
authorize! :admin, Spree::ReturnAuthorization
|
35
35
|
@return_authorization = order.return_authorizations.accessible_by(current_ability, :read).find(params[:id])
|
36
36
|
respond_with(@return_authorization)
|
37
37
|
end
|
@@ -27,10 +27,10 @@ module Spree
|
|
27
27
|
private
|
28
28
|
def scope
|
29
29
|
if params[:country_id]
|
30
|
-
@country = Country.accessible_by(current_ability, :read).find(params[:country_id])
|
30
|
+
@country = Spree::Country.accessible_by(current_ability, :read).find(params[:country_id])
|
31
31
|
return @country.states.accessible_by(current_ability, :read)
|
32
32
|
else
|
33
|
-
return State.accessible_by(current_ability, :read)
|
33
|
+
return Spree::State.accessible_by(current_ability, :read)
|
34
34
|
end
|
35
35
|
end
|
36
36
|
end
|
@@ -14,7 +14,7 @@ module Spree
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def create
|
17
|
-
authorize! :create, StockItem
|
17
|
+
authorize! :create, Spree::StockItem
|
18
18
|
|
19
19
|
count_on_hand = 0
|
20
20
|
if params[:stock_item].has_key?(:count_on_hand)
|
@@ -31,7 +31,7 @@ module Spree
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def update
|
34
|
-
@stock_item = StockItem.accessible_by(current_ability, :update).find(params[:id])
|
34
|
+
@stock_item = Spree::StockItem.accessible_by(current_ability, :update).find(params[:id])
|
35
35
|
|
36
36
|
count_on_hand = 0
|
37
37
|
if params[:stock_item].has_key?(:count_on_hand)
|
@@ -50,7 +50,7 @@ module Spree
|
|
50
50
|
end
|
51
51
|
|
52
52
|
def destroy
|
53
|
-
@stock_item = StockItem.accessible_by(current_ability, :destroy).find(params[:id])
|
53
|
+
@stock_item = Spree::StockItem.accessible_by(current_ability, :destroy).find(params[:id])
|
54
54
|
@stock_item.destroy
|
55
55
|
respond_with(@stock_item, status: 204)
|
56
56
|
end
|
@@ -59,7 +59,7 @@ module Spree
|
|
59
59
|
|
60
60
|
def stock_location
|
61
61
|
render 'spree/api/shared/stock_location_required', status: 422 and return unless params[:stock_location_id]
|
62
|
-
@stock_location ||= StockLocation.accessible_by(current_ability, :read).find(params[:stock_location_id])
|
62
|
+
@stock_location ||= Spree::StockLocation.accessible_by(current_ability, :read).find(params[:stock_location_id])
|
63
63
|
end
|
64
64
|
|
65
65
|
def scope
|
@@ -2,8 +2,8 @@ module Spree
|
|
2
2
|
module Api
|
3
3
|
class StockLocationsController < Spree::Api::BaseController
|
4
4
|
def index
|
5
|
-
authorize! :read, StockLocation
|
6
|
-
@stock_locations = StockLocation.accessible_by(current_ability, :read).order('name ASC').ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
|
5
|
+
authorize! :read, Spree::StockLocation
|
6
|
+
@stock_locations = Spree::StockLocation.accessible_by(current_ability, :read).order('name ASC').ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
|
7
7
|
respond_with(@stock_locations)
|
8
8
|
end
|
9
9
|
|
@@ -12,8 +12,8 @@ module Spree
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def create
|
15
|
-
authorize! :create, StockLocation
|
16
|
-
@stock_location = StockLocation.new(stock_location_params)
|
15
|
+
authorize! :create, Spree::StockLocation
|
16
|
+
@stock_location = Spree::StockLocation.new(stock_location_params)
|
17
17
|
if @stock_location.save
|
18
18
|
respond_with(@stock_location, status: 201, default_template: :show)
|
19
19
|
else
|
@@ -39,7 +39,7 @@ module Spree
|
|
39
39
|
private
|
40
40
|
|
41
41
|
def stock_location
|
42
|
-
@stock_location ||= StockLocation.accessible_by(current_ability, :read).find(params[:id])
|
42
|
+
@stock_location ||= Spree::StockLocation.accessible_by(current_ability, :read).find(params[:id])
|
43
43
|
end
|
44
44
|
|
45
45
|
def stock_location_params
|
@@ -4,7 +4,7 @@ module Spree
|
|
4
4
|
before_action :stock_location, except: [:update, :destroy]
|
5
5
|
|
6
6
|
def index
|
7
|
-
authorize! :read, StockMovement
|
7
|
+
authorize! :read, Spree::StockMovement
|
8
8
|
@stock_movements = scope.ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
|
9
9
|
respond_with(@stock_movements)
|
10
10
|
end
|
@@ -15,7 +15,7 @@ module Spree
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def create
|
18
|
-
authorize! :create, StockMovement
|
18
|
+
authorize! :create, Spree::StockMovement
|
19
19
|
@stock_movement = scope.new(stock_movement_params)
|
20
20
|
if @stock_movement.save
|
21
21
|
respond_with(@stock_movement, status: 201, default_template: :show)
|
@@ -28,7 +28,7 @@ module Spree
|
|
28
28
|
|
29
29
|
def stock_location
|
30
30
|
render 'spree/api/shared/stock_location_required', status: 422 and return unless params[:stock_location_id]
|
31
|
-
@stock_location ||= StockLocation.accessible_by(current_ability, :read).find(params[:stock_location_id])
|
31
|
+
@stock_location ||= Spree::StockLocation.accessible_by(current_ability, :read).find(params[:stock_location_id])
|
32
32
|
end
|
33
33
|
|
34
34
|
def scope
|
@@ -5,14 +5,14 @@ module Spree
|
|
5
5
|
before_filter :get_store, except: [:index, :create]
|
6
6
|
|
7
7
|
def index
|
8
|
-
authorize! :read, Store
|
9
|
-
@stores = Store.accessible_by(current_ability, :read).all
|
8
|
+
authorize! :read, Spree::Store
|
9
|
+
@stores = Spree::Store.accessible_by(current_ability, :read).all
|
10
10
|
respond_with(@stores)
|
11
11
|
end
|
12
12
|
|
13
13
|
def create
|
14
|
-
authorize! :create, Store
|
15
|
-
@store = Store.new(store_params)
|
14
|
+
authorize! :create, Spree::Store
|
15
|
+
@store = Spree::Store.new(store_params)
|
16
16
|
@store.code = params[:store][:code]
|
17
17
|
if @store.save
|
18
18
|
respond_with(@store, status: 201, default_template: :show)
|
@@ -44,7 +44,7 @@ module Spree
|
|
44
44
|
private
|
45
45
|
|
46
46
|
def get_store
|
47
|
-
@store = Store.find(params[:id])
|
47
|
+
@store = Spree::Store.find(params[:id])
|
48
48
|
end
|
49
49
|
|
50
50
|
def store_params
|
@@ -16,8 +16,8 @@ module Spree
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def create
|
19
|
-
authorize! :create, Taxonomy
|
20
|
-
@taxonomy = Taxonomy.new(taxonomy_params)
|
19
|
+
authorize! :create, Spree::Taxonomy
|
20
|
+
@taxonomy = Spree::Taxonomy.new(taxonomy_params)
|
21
21
|
if @taxonomy.save
|
22
22
|
respond_with(@taxonomy, :status => 201, :default_template => :show)
|
23
23
|
else
|
@@ -43,13 +43,13 @@ module Spree
|
|
43
43
|
private
|
44
44
|
|
45
45
|
def taxonomies
|
46
|
-
@taxonomies = Taxonomy.accessible_by(current_ability, :read).order('name').includes(:root => :children).
|
46
|
+
@taxonomies = Spree::Taxonomy.accessible_by(current_ability, :read).order('name').includes(:root => :children).
|
47
47
|
ransack(params[:q]).result.
|
48
48
|
page(params[:page]).per(params[:per_page])
|
49
49
|
end
|
50
50
|
|
51
51
|
def taxonomy
|
52
|
-
@taxonomy ||= Taxonomy.accessible_by(current_ability, :read).find(params[:id])
|
52
|
+
@taxonomy ||= Spree::Taxonomy.accessible_by(current_ability, :read).find(params[:id])
|
53
53
|
end
|
54
54
|
|
55
55
|
def taxonomy_params
|
@@ -4,7 +4,7 @@ module Spree
|
|
4
4
|
before_action :product
|
5
5
|
|
6
6
|
def create
|
7
|
-
authorize! :create, Variant
|
7
|
+
authorize! :create, Spree::Variant
|
8
8
|
@variant = scope.new(variant_params)
|
9
9
|
if @variant.save
|
10
10
|
respond_with(@variant, status: 201, default_template: :show)
|
@@ -55,10 +55,10 @@ module Spree
|
|
55
55
|
if @product
|
56
56
|
variants = @product.variants_including_master
|
57
57
|
else
|
58
|
-
variants = Variant
|
58
|
+
variants = Spree::Variant
|
59
59
|
end
|
60
60
|
|
61
|
-
if current_ability.can?(:manage, Variant) && params[:show_deleted]
|
61
|
+
if current_ability.can?(:manage, Spree::Variant) && params[:show_deleted]
|
62
62
|
variants = variants.with_deleted
|
63
63
|
end
|
64
64
|
|
@@ -3,8 +3,8 @@ module Spree
|
|
3
3
|
class ZonesController < Spree::Api::BaseController
|
4
4
|
|
5
5
|
def create
|
6
|
-
authorize! :create, Zone
|
7
|
-
@zone = Zone.new(map_nested_attributes_keys(Spree::Zone, zone_params))
|
6
|
+
authorize! :create, Spree::Zone
|
7
|
+
@zone = Spree::Zone.new(map_nested_attributes_keys(Spree::Zone, zone_params))
|
8
8
|
if @zone.save
|
9
9
|
respond_with(@zone, :status => 201, :default_template => :show)
|
10
10
|
else
|
@@ -19,7 +19,7 @@ module Spree
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def index
|
22
|
-
@zones = Zone.accessible_by(current_ability, :read).order('name ASC').ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
|
22
|
+
@zones = Spree::Zone.accessible_by(current_ability, :read).order('name ASC').ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
|
23
23
|
respond_with(@zones)
|
24
24
|
end
|
25
25
|
|
@@ -1,15 +1,9 @@
|
|
1
1
|
object @variant
|
2
|
-
attributes *variant_attributes
|
3
2
|
|
4
3
|
cache [I18n.locale, @current_user_roles.include?('admin'), 'big_variant', root_object]
|
5
4
|
|
6
5
|
extends "spree/api/variants/small"
|
7
6
|
|
8
|
-
node :total_on_hand do
|
9
|
-
root_object.total_on_hand
|
10
|
-
end
|
11
|
-
|
12
|
-
|
13
7
|
child(:stock_items => :stock_items) do
|
14
8
|
attributes :id, :count_on_hand, :stock_location_id, :backorderable
|
15
9
|
attribute :available? => :available
|
@@ -28,7 +28,7 @@ module Spree
|
|
28
28
|
# This method can be overriden (with a let block) inside a context
|
29
29
|
# For instance, if you wanted to have an admin user instead.
|
30
30
|
def current_api_user
|
31
|
-
@current_api_user ||= stub_model(Spree
|
31
|
+
@current_api_user ||= stub_model(Spree.user_class, email: "spree@example.com")
|
32
32
|
end
|
33
33
|
|
34
34
|
def image(filename)
|
@@ -4,7 +4,7 @@ module Spree
|
|
4
4
|
module Setup
|
5
5
|
def sign_in_as_admin!
|
6
6
|
let!(:current_api_user) do
|
7
|
-
user = stub_model(Spree
|
7
|
+
user = stub_model(Spree.user_class)
|
8
8
|
allow(user).to receive_message_chain(:spree_roles, :pluck).and_return(["admin"])
|
9
9
|
allow(user).to receive(:has_spree_role?).with("admin").and_return(true)
|
10
10
|
user
|
@@ -326,6 +326,13 @@ module Spree
|
|
326
326
|
expect(json_response['option_types'].count).to eq(2)
|
327
327
|
end
|
328
328
|
|
329
|
+
it "creates product with option_types ids" do
|
330
|
+
option_type = create(:option_type)
|
331
|
+
product_data.merge!(option_type_ids: [option_type.id])
|
332
|
+
api_post :create, product: product_data
|
333
|
+
expect(json_response['option_types'].first['id']).to eq option_type.id
|
334
|
+
end
|
335
|
+
|
329
336
|
it "creates with shipping categories" do
|
330
337
|
hash = { :name => "The Other Product",
|
331
338
|
:price => 19.99,
|
@@ -4,7 +4,7 @@ module Spree
|
|
4
4
|
describe Api::UsersController, :type => :controller do
|
5
5
|
render_views
|
6
6
|
|
7
|
-
let(:user) { create(:user, spree_api_key: rand) }
|
7
|
+
let(:user) { create(:user, spree_api_key: rand.to_s) }
|
8
8
|
let(:stranger) { create(:user, :email => 'stranger@example.com') }
|
9
9
|
let(:attributes) { [:id, :email, :created_at, :updated_at] }
|
10
10
|
|
@@ -4,10 +4,11 @@ module Spree
|
|
4
4
|
describe Api::VariantsController, :type => :controller do
|
5
5
|
render_views
|
6
6
|
|
7
|
+
let(:option_value) { create(:option_value) }
|
7
8
|
let!(:product) { create(:product) }
|
8
9
|
let!(:variant) do
|
9
10
|
variant = product.master
|
10
|
-
variant.option_values <<
|
11
|
+
variant.option_values << option_value
|
11
12
|
variant
|
12
13
|
end
|
13
14
|
|
@@ -166,10 +167,20 @@ module Spree
|
|
166
167
|
end
|
167
168
|
|
168
169
|
it "can create a new variant" do
|
169
|
-
|
170
|
+
other_value = create(:option_value)
|
171
|
+
api_post :create, variant: {
|
172
|
+
sku: "12345",
|
173
|
+
price: "20",
|
174
|
+
option_value_ids: [option_value.id, other_value.id]
|
175
|
+
}
|
176
|
+
|
170
177
|
expect(json_response).to have_attributes(new_attributes)
|
171
178
|
expect(response.status).to eq(201)
|
172
179
|
expect(json_response["sku"]).to eq("12345")
|
180
|
+
expect(json_response["price"]).to match "20"
|
181
|
+
|
182
|
+
option_value_ids = json_response["option_values"].map { |o| o['id'] }
|
183
|
+
expect(option_value_ids).to match_array [option_value.id, other_value.id]
|
173
184
|
|
174
185
|
expect(variant.product.variants.count).to eq(1)
|
175
186
|
end
|
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: 3.0.
|
4
|
+
version: 3.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Bigg
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-05-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: spree_core
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3.0.
|
19
|
+
version: 3.0.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 3.0.
|
26
|
+
version: 3.0.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rabl
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|