solidus_api 2.0.3 → 2.1.0.beta1

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.

Potentially problematic release.


This version of solidus_api might be problematic. Click here for more details.

Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/spree/api/base_controller.rb +10 -0
  3. data/app/controllers/spree/api/countries_controller.rb +8 -3
  4. data/app/controllers/spree/api/credit_cards_controller.rb +3 -1
  5. data/app/controllers/spree/api/orders_controller.rb +5 -14
  6. data/app/controllers/spree/api/payments_controller.rb +2 -3
  7. data/app/controllers/spree/api/product_properties_controller.rb +8 -3
  8. data/app/controllers/spree/api/products_controller.rb +1 -1
  9. data/app/controllers/spree/api/properties_controller.rb +1 -1
  10. data/app/controllers/spree/api/resource_controller.rb +1 -1
  11. data/app/controllers/spree/api/return_authorizations_controller.rb +9 -3
  12. data/app/controllers/spree/api/shipments_controller.rb +3 -1
  13. data/app/controllers/spree/api/states_controller.rb +1 -1
  14. data/app/controllers/spree/api/stock_items_controller.rb +1 -1
  15. data/app/controllers/spree/api/stock_locations_controller.rb +9 -1
  16. data/app/controllers/spree/api/stock_movements_controller.rb +1 -1
  17. data/app/controllers/spree/api/store_credit_events_controller.rb +3 -1
  18. data/app/controllers/spree/api/taxonomies_controller.rb +8 -4
  19. data/app/controllers/spree/api/taxons_controller.rb +17 -3
  20. data/app/controllers/spree/api/variants_controller.rb +3 -1
  21. data/app/controllers/spree/api/zones_controller.rb +8 -1
  22. data/app/views/spree/api/products/index.v1.rabl +1 -1
  23. data/app/views/spree/api/products/show.v1.rabl +26 -15
  24. data/solidus_api.gemspec +4 -0
  25. data/spec/controllers/spree/api/checkouts_controller_spec.rb +0 -13
  26. data/spec/controllers/spree/api/orders_controller_spec.rb +5 -52
  27. data/spec/controllers/spree/api/payments_controller_spec.rb +0 -11
  28. metadata +9 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 78fbd4104f28d1ed8a435048a2ee5eb5028447e7
4
- data.tar.gz: 75f60c3749c6be95085b9a9c0f97c46329cb6067
3
+ metadata.gz: d202cbb2d66a818ad824e739704be52b81f63d48
4
+ data.tar.gz: da186de43c9f9021a1a35c5ad3b4addb89fbac5f
5
5
  SHA512:
6
- metadata.gz: c6f8c12cfcf3b7a8ea41c49d6e97b1cfe53057fdd9b848902abfd7e6e0a9bcdabc8fa64bb4724b17f522794d5405a0d6563ffb04d67044f3af4a4db675734c0f
7
- data.tar.gz: 38cc8c501733db05e285e01c309f3ea5c5a0fa9050c4578d9bc42548853e26cabf4ba51a37d12d4b81106336f0edb88d0fe2366e2553c01413da1c3cbceb8bf6
6
+ metadata.gz: ea88be5b89fd4e8ab09210ad1a08c8900255492134bf6e072cef9bdb0f2e610bce615f2f622f6c22be9f43fddf3a83657575845e9afc15c576f64a6bb6ac7363
7
+ data.tar.gz: 1e7bf9f59a65a1df20263f901cafd1793f50cabd4157ef2baf51fa94d24d586abbef35b5881ad343ce87089043360df09a4b5c5e2f98bcc378d92940c0f2fb66
@@ -161,6 +161,16 @@ module Spree
161
161
  status: 422
162
162
  )
163
163
  end
164
+
165
+ def paginate(resource)
166
+ resource.
167
+ page(params[:page]).
168
+ per(params[:per_page] || default_per_page)
169
+ end
170
+
171
+ def default_per_page
172
+ Kaminari.config.default_per_page
173
+ end
164
174
  end
165
175
  end
166
176
  end
@@ -4,11 +4,16 @@ module Spree
4
4
  skip_before_action :authenticate_user
5
5
 
6
6
  def index
7
- @countries = Country.accessible_by(current_ability, :read).ransack(params[:q]).result.
8
- includes(:states).order('name ASC').
9
- page(params[:page]).per(params[:per_page])
7
+ @countries = Country.
8
+ accessible_by(current_ability, :read).
9
+ ransack(params[:q]).
10
+ result.
11
+ order('name ASC')
12
+
10
13
  country = Country.order("updated_at ASC").last
14
+
11
15
  if stale?(country)
16
+ @countries = paginate(@countries)
12
17
  respond_with(@countries)
13
18
  end
14
19
  end
@@ -9,7 +9,9 @@ module Spree
9
9
  .credit_cards
10
10
  .accessible_by(current_ability, :read)
11
11
  .with_payment_profile
12
- .ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
12
+ .ransack(params[:q]).result
13
+
14
+ @credit_cards = paginate(@credit_cards)
13
15
  respond_with(@credit_cards)
14
16
  end
15
17
 
@@ -27,18 +27,8 @@ module Spree
27
27
 
28
28
  def create
29
29
  authorize! :create, Order
30
-
31
- if can?(:admin, Order)
32
- @order = Spree::Core::Importer::Order.import(determine_order_user, order_params)
33
- respond_with(@order, default_template: :show, status: 201)
34
- else
35
- @order = Spree::Order.create!(user: current_api_user, store: current_store)
36
- if OrderUpdateAttributes.new(@order, order_params).apply
37
- respond_with(@order, default_template: :show, status: 201)
38
- else
39
- invalid_resource!(@order)
40
- end
41
- end
30
+ @order = Spree::Core::Importer::Order.import(determine_order_user, order_params)
31
+ respond_with(@order, default_template: :show, status: 201)
42
32
  end
43
33
 
44
34
  def empty
@@ -49,7 +39,7 @@ module Spree
49
39
 
50
40
  def index
51
41
  authorize! :index, Order
52
- @orders = Order.ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
42
+ @orders = paginate(Order.ransack(params[:q]).result)
53
43
  respond_with(@orders)
54
44
  end
55
45
 
@@ -82,7 +72,8 @@ module Spree
82
72
 
83
73
  def mine
84
74
  if current_api_user
85
- @orders = current_api_user.orders.by_store(current_store).reverse_chronological.ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
75
+ @orders = current_api_user.orders.by_store(current_store).reverse_chronological.ransack(params[:q]).result
76
+ @orders = paginate(@orders)
86
77
  else
87
78
  render "spree/api/errors/unauthorized", status: :unauthorized
88
79
  end
@@ -6,17 +6,16 @@ module Spree
6
6
  before_action :find_payment, only: [:update, :show, :authorize, :purchase, :capture, :void, :credit]
7
7
 
8
8
  def index
9
- @payments = @order.payments.ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
9
+ @payments = paginate(@order.payments.ransack(params[:q]).result)
10
10
  respond_with(@payments)
11
11
  end
12
12
 
13
13
  def new
14
- @payment_methods = Spree::PaymentMethod.available
14
+ @payment_methods = Spree::PaymentMethod.available_to_users.available_to_admin
15
15
  respond_with(@payment_method)
16
16
  end
17
17
 
18
18
  def create
19
- @order.validate_payments_attributes(payment_params)
20
19
  @payment = PaymentCreate.new(@order, payment_params).build
21
20
  if @payment.save
22
21
  respond_with(@payment, status: 201, default_template: :show)
@@ -5,9 +5,14 @@ module Spree
5
5
  before_action :product_property, only: [:show, :update, :destroy]
6
6
 
7
7
  def index
8
- @product_properties = @product.product_properties.accessible_by(current_ability, :read).
9
- ransack(params[:q]).result.
10
- page(params[:page]).per(params[:per_page])
8
+ @product_properties = @product.
9
+ product_properties.
10
+ accessible_by(current_ability, :read).
11
+ ransack(params[:q]).
12
+ result
13
+
14
+ @product_properties = paginate(@product_properties)
15
+
11
16
  respond_with(@product_properties)
12
17
  end
13
18
 
@@ -9,7 +9,7 @@ module Spree
9
9
  @products = product_scope.ransack(params[:q]).result
10
10
  end
11
11
 
12
- @products = @products.distinct.page(params[:page]).per(params[:per_page])
12
+ @products = paginate(@products.distinct)
13
13
  expires_in 15.minutes, public: true
14
14
  headers['Surrogate-Control'] = "max-age=#{15.minutes}"
15
15
  respond_with(@products)
@@ -13,7 +13,7 @@ module Spree
13
13
  @properties = @properties.ransack(params[:q]).result
14
14
  end
15
15
 
16
- @properties = @properties.page(params[:page]).per(params[:per_page])
16
+ @properties = paginate(@properties)
17
17
  respond_with(@properties)
18
18
  end
19
19
 
@@ -10,7 +10,7 @@ class Spree::Api::ResourceController < Spree::Api::BaseController
10
10
  collection_scope = collection_scope.ransack(params[:q]).result
11
11
  end
12
12
 
13
- @collection = collection_scope.page(params[:page]).per(params[:per_page])
13
+ @collection = paginate(collection_scope)
14
14
  instance_variable_set("@#{controller_name}", @collection)
15
15
 
16
16
  respond_with(@collection)
@@ -24,9 +24,15 @@ module Spree
24
24
 
25
25
  def index
26
26
  authorize! :admin, ReturnAuthorization
27
- @return_authorizations = @order.return_authorizations.accessible_by(current_ability, :read).
28
- ransack(params[:q]).result.
29
- page(params[:page]).per(params[:per_page])
27
+
28
+ @return_authorizations = @order.
29
+ return_authorizations.
30
+ accessible_by(current_ability, :read).
31
+ ransack(params[:q]).
32
+ result
33
+
34
+ @return_authorizations = paginate(@return_authorizations)
35
+
30
36
  respond_with(@return_authorizations)
31
37
  end
32
38
 
@@ -14,7 +14,9 @@ module Spree
14
14
  .joins(:order)
15
15
  .where(spree_orders: { user_id: current_api_user.id })
16
16
  .includes(mine_includes)
17
- .ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
17
+ .ransack(params[:q]).result
18
+
19
+ @shipments = paginate(@shipments)
18
20
  else
19
21
  render "spree/api/errors/unauthorized", status: :unauthorized
20
22
  end
@@ -8,7 +8,7 @@ module Spree
8
8
  includes(:country).order('name ASC')
9
9
 
10
10
  if params[:page] || params[:per_page]
11
- @states = @states.page(params[:page]).per(params[:per_page])
11
+ @states = paginate(@states)
12
12
  end
13
13
 
14
14
  respond_with(@states)
@@ -4,7 +4,7 @@ module Spree
4
4
  before_action :load_stock_location, only: [:index, :show, :create]
5
5
 
6
6
  def index
7
- @stock_items = scope.ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
7
+ @stock_items = paginate(scope.ransack(params[:q]).result)
8
8
  respond_with(@stock_items)
9
9
  end
10
10
 
@@ -3,7 +3,15 @@ module Spree
3
3
  class StockLocationsController < Spree::Api::BaseController
4
4
  def index
5
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])
6
+
7
+ @stock_locations = StockLocation.
8
+ accessible_by(current_ability, :read).
9
+ order('name ASC').
10
+ ransack(params[:q]).
11
+ result
12
+
13
+ @stock_locations = paginate(@stock_locations)
14
+
7
15
  respond_with(@stock_locations)
8
16
  end
9
17
 
@@ -5,7 +5,7 @@ module Spree
5
5
 
6
6
  def index
7
7
  authorize! :read, StockMovement
8
- @stock_movements = scope.ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
8
+ @stock_movements = paginate(scope.ransack(params[:q]).result)
9
9
  respond_with(@stock_movements)
10
10
  end
11
11
 
@@ -1,7 +1,9 @@
1
1
  class Spree::Api::StoreCreditEventsController < Spree::Api::BaseController
2
2
  def mine
3
3
  if current_api_user
4
- @store_credit_events = current_api_user.store_credit_events.exposed_events.page(params[:page]).per(params[:per_page]).reverse_chronological
4
+ @store_credit_events = paginate(
5
+ current_api_user.store_credit_events.exposed_events
6
+ ).reverse_chronological
5
7
  else
6
8
  render "spree/api/errors/unauthorized", status: :unauthorized
7
9
  end
@@ -2,7 +2,8 @@ module Spree
2
2
  module Api
3
3
  class TaxonomiesController < Spree::Api::BaseController
4
4
  def index
5
- respond_with(taxonomies)
5
+ @taxonomies = paginate(taxonomies)
6
+ respond_with(@taxonomies)
6
7
  end
7
8
 
8
9
  def new
@@ -45,9 +46,12 @@ module Spree
45
46
  private
46
47
 
47
48
  def taxonomies
48
- @taxonomies = Taxonomy.accessible_by(current_ability, :read).order('name').includes(root: :children).
49
- ransack(params[:q]).result.
50
- page(params[:page]).per(params[:per_page])
49
+ @taxonomies = Taxonomy.
50
+ accessible_by(current_ability, :read).
51
+ order('name').
52
+ includes(root: :children).
53
+ ransack(params[:q]).
54
+ result
51
55
  end
52
56
 
53
57
  def taxonomy
@@ -10,7 +10,7 @@ module Spree
10
10
  @taxons = Spree::Taxon.accessible_by(current_ability, :read).order(:taxonomy_id, :lft).ransack(params[:q]).result
11
11
  end
12
12
 
13
- @taxons = @taxons.page(params[:page]).per(params[:per_page])
13
+ @taxons = paginate(@taxons)
14
14
  respond_with(@taxons)
15
15
  end
16
16
 
@@ -65,13 +65,27 @@ module Spree
65
65
  # Returns the products sorted by their position with the classification
66
66
  # Products#index does not do the sorting.
67
67
  taxon = Spree::Taxon.find(params[:id])
68
- @products = taxon.products.ransack(params[:q]).result
69
- @products = @products.page(params[:page]).per(params[:per_page] || 500)
68
+ @products = paginate(taxon.products.ransack(params[:q]).result)
69
+ @products = @products.includes(master: :default_price)
70
+
71
+ if params[:simple]
72
+ @exclude_data = {
73
+ variants: true,
74
+ option_types: true,
75
+ product_properties: true,
76
+ classifications: true
77
+ }
78
+ @product_attributes = %i(id name display_price)
79
+ end
70
80
  render "spree/api/products/index"
71
81
  end
72
82
 
73
83
  private
74
84
 
85
+ def default_per_page
86
+ 500
87
+ end
88
+
75
89
  def taxonomy
76
90
  if params[:taxonomy_id].present?
77
91
  @taxonomy ||= Spree::Taxonomy.accessible_by(current_ability, :read).find(params[:taxonomy_id])
@@ -24,7 +24,9 @@ module Spree
24
24
  # or removed from the views.
25
25
  def index
26
26
  @variants = scope.includes({ option_values: :option_type }, :product, :default_price, :images, { stock_items: :stock_location })
27
- .ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
27
+ .ransack(params[:q]).result
28
+
29
+ @variants = paginate(@variants)
28
30
  respond_with(@variants)
29
31
  end
30
32
 
@@ -18,7 +18,14 @@ module Spree
18
18
  end
19
19
 
20
20
  def index
21
- @zones = Zone.accessible_by(current_ability, :read).order('name ASC').ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
21
+ @zones = Zone.
22
+ accessible_by(current_ability, :read).
23
+ order('name ASC').
24
+ ransack(params[:q]).
25
+ result
26
+
27
+ @zones = paginate(@zones)
28
+
22
29
  respond_with(@zones)
23
30
  end
24
31
 
@@ -1,5 +1,5 @@
1
1
  object false
2
- node(:count) { @products.count }
2
+ node(:count) { @products.size }
3
3
  node(:total_count) { @products.total_count }
4
4
  node(:current_page) { @products.current_page }
5
5
  node(:per_page) { @products.limit_value }
@@ -1,31 +1,42 @@
1
1
  object @product
2
2
  cache [I18n.locale, @current_user_roles.include?('admin'), current_pricing_options, root_object]
3
3
 
4
- attributes *product_attributes
4
+ @product_attributes ||= product_attributes
5
+ attributes(*@product_attributes)
5
6
 
6
7
  node(:display_price) { |p| p.display_price.to_s }
7
- node(:has_variants) { |p| p.has_variants? }
8
8
 
9
- child :master => :master do
10
- extends "spree/api/variants/small"
11
- end
9
+ @exclude_data ||= {}
10
+ unless @exclude_data[:variants]
11
+ node(:has_variants) { |p| p.has_variants? }
12
+
13
+ child :master => :master do
14
+ extends "spree/api/variants/small"
15
+ end
12
16
 
13
- child :variants => :variants do
14
- extends "spree/api/variants/small"
17
+ child :variants => :variants do
18
+ extends "spree/api/variants/small"
19
+ end
15
20
  end
16
21
 
17
- child :option_types => :option_types do
18
- attributes *option_type_attributes
22
+ unless @exclude_data[:option_types]
23
+ child :option_types => :option_types do
24
+ attributes(*option_type_attributes)
25
+ end
19
26
  end
20
27
 
21
- child :product_properties => :product_properties do
22
- attributes *product_property_attributes
28
+ unless @exclude_data[:product_properties]
29
+ child :product_properties => :product_properties do
30
+ attributes(*product_property_attributes)
31
+ end
23
32
  end
24
33
 
25
- child :classifications => :classifications do
26
- attributes :taxon_id, :position
34
+ unless @exclude_data[:classifications]
35
+ child :classifications => :classifications do
36
+ attributes :taxon_id, :position
27
37
 
28
- child(:taxon) do
29
- extends "spree/api/taxons/show"
38
+ child(:taxon) do
39
+ extends "spree/api/taxons/show"
40
+ end
30
41
  end
31
42
  end
data/solidus_api.gemspec CHANGED
@@ -5,6 +5,7 @@ Gem::Specification.new do |gem|
5
5
  gem.author = 'Solidus Team'
6
6
  gem.email = 'contact@solidus.io'
7
7
  gem.homepage = 'http://solidus.io/'
8
+ gem.license = 'BSD-3-Clause'
8
9
 
9
10
  gem.summary = 'REST API for the Solidus e-commerce framework.'
10
11
  gem.description = gem.summary
@@ -16,6 +17,9 @@ Gem::Specification.new do |gem|
16
17
  gem.require_paths = ["lib"]
17
18
  gem.version = Spree.solidus_version
18
19
 
20
+ gem.required_ruby_version = '>= 2.2.2'
21
+ gem.required_rubygems_version = '>= 1.8.23'
22
+
19
23
  gem.add_dependency 'solidus_core', gem.version
20
24
  gem.add_dependency 'rabl', '0.13.0' # FIXME: update for proper rails 5 support
21
25
  gem.add_dependency 'versioncake', '~> 3.0'
@@ -163,19 +163,6 @@ module Spree
163
163
  expect(response.status).to eq(200)
164
164
  end
165
165
 
166
- context "with disallowed payment method" do
167
- it "returns not found" do
168
- order.update_column(:state, "payment")
169
- allow_any_instance_of(Spree::Gateway::Bogus).to receive(:source_required?).and_return(false)
170
- @payment_method.update!(display_on: "back_end")
171
- expect {
172
- api_put :update, id: order.to_param, order_token: order.guest_token, order: { payments_attributes: [{ payment_method_id: @payment_method.id }] }
173
- }.not_to change { Spree::Payment.count }
174
- expect(response.status).to eq(404)
175
- end
176
- end
177
-
178
-
179
166
  it "returns errors when source is required and missing" do
180
167
  order.update_column(:state, "payment")
181
168
  api_put :update, id: order.to_param, order_token: order.guest_token,
@@ -32,9 +32,8 @@ module Spree
32
32
  describe "POST create" do
33
33
  let(:target_user) { create :user }
34
34
  let(:date_override) { Time.parse('2015-01-01') }
35
- let(:attributes) { { user_id: target_user.id, created_at: date_override, email: target_user.email } }
36
35
 
37
- subject { api_post :create, order: attributes }
36
+ subject { api_post :create, order: { user_id: target_user.id, created_at: date_override, email: target_user.email } }
38
37
 
39
38
  context "when the current user cannot administrate the order" do
40
39
  stub_authorization! do |_|
@@ -43,37 +42,12 @@ module Spree
43
42
 
44
43
  it "does not include unpermitted params, or allow overriding the user", focus: true do
45
44
  subject
46
- expect(response).to be_success
47
45
  order = Spree::Order.last
48
46
  expect(order.user).to eq current_api_user
49
47
  expect(order.email).to eq target_user.email
50
48
  end
51
49
 
52
50
  it { is_expected.to be_success }
53
-
54
- context 'creating payment' do
55
- let(:attributes) { super().merge(payments_attributes: [{ payment_method_id: payment_method.id }]) }
56
-
57
- context "with allowed payment method" do
58
- let!(:payment_method) { create(:check_payment_method, name: "allowed" ) }
59
- it { is_expected.to be_success }
60
- it "creates a payment" do
61
- expect {
62
- subject
63
- }.to change { Spree::Payment.count }.by(1)
64
- end
65
- end
66
-
67
- context "with disallowed payment method" do
68
- let!(:payment_method) { create(:check_payment_method, name: "forbidden", display_on: "back_end") }
69
- it { is_expected.to be_not_found }
70
- it "creates no payments" do
71
- expect {
72
- subject
73
- }.not_to change { Spree::Payment.count }
74
- end
75
- end
76
- end
77
51
  end
78
52
 
79
53
  context "when the current user can administrate the order" do
@@ -123,30 +97,6 @@ module Spree
123
97
  subject
124
98
  }.to_not change{ order.reload.number }
125
99
  end
126
-
127
- context 'creating payment' do
128
- let(:order_params) { super().merge(payments_attributes: [{ payment_method_id: payment_method.id }]) }
129
-
130
- context "with allowed payment method" do
131
- let!(:payment_method) { create(:check_payment_method, name: "allowed" ) }
132
- it { is_expected.to be_success }
133
- it "creates a payment" do
134
- expect {
135
- subject
136
- }.to change { Spree::Payment.count }.by(1)
137
- end
138
- end
139
-
140
- context "with disallowed payment method" do
141
- let!(:payment_method) { create(:check_payment_method, name: "forbidden", display_on: "back_end") }
142
- it { is_expected.to be_not_found }
143
- it "creates no payments" do
144
- expect {
145
- subject
146
- }.not_to change { Spree::Payment.count }
147
- end
148
- end
149
- end
150
100
  end
151
101
 
152
102
  context "when the user can administer the order" do
@@ -383,7 +333,10 @@ module Spree
383
333
 
384
334
  # Regression test for https://github.com/spree/spree/issues/3404
385
335
  it "can specify additional parameters for a line item" do
386
- expect_any_instance_of(Spree::LineItem).to receive(:special=).with("foo")
336
+ expect(Order).to receive(:create!).and_return(order = Spree::Order.new)
337
+ allow(order).to receive(:associate_user!)
338
+ allow(order).to receive_message_chain(:contents, :add).and_return(line_item = double('LineItem'))
339
+ expect(line_item).to receive(:update_attributes!).with(hash_including("special" => "foo"))
387
340
 
388
341
  allow(controller).to receive_messages(permitted_line_item_attributes: [:id, :variant_id, :quantity, :special])
389
342
  api_post :create, order: {
@@ -45,17 +45,6 @@ module Spree
45
45
  expect(response.status).to eq(201)
46
46
  expect(json_response).to have_attributes(attributes)
47
47
  end
48
-
49
- context "disallowed payment method" do
50
- it "does not create a new payment" do
51
- PaymentMethod.first.update!(display_on: "back_end")
52
-
53
- expect {
54
- api_post :create, payment: { payment_method_id: PaymentMethod.first.id, amount: 50 }
55
- }.not_to change { Spree::Payment.count }
56
- expect(response.status).to eq(404)
57
- end
58
- end
59
48
  end
60
49
 
61
50
  context "payment source is required" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solidus_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3
4
+ version: 2.1.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Solidus Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-12 00:00:00.000000000 Z
11
+ date: 2016-12-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: solidus_core
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 2.0.3
19
+ version: 2.1.0.beta1
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: 2.0.3
26
+ version: 2.1.0.beta1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rabl
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -261,7 +261,8 @@ files:
261
261
  - spec/test_views/spree/api/widgets/new.v1.rabl
262
262
  - spec/test_views/spree/api/widgets/show.v1.rabl
263
263
  homepage: http://solidus.io/
264
- licenses: []
264
+ licenses:
265
+ - BSD-3-Clause
265
266
  metadata: {}
266
267
  post_install_message:
267
268
  rdoc_options: []
@@ -271,15 +272,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
271
272
  requirements:
272
273
  - - ">="
273
274
  - !ruby/object:Gem::Version
274
- version: '0'
275
+ version: 2.2.2
275
276
  required_rubygems_version: !ruby/object:Gem::Requirement
276
277
  requirements:
277
278
  - - ">="
278
279
  - !ruby/object:Gem::Version
279
- version: '0'
280
+ version: 1.8.23
280
281
  requirements: []
281
282
  rubyforge_project:
282
- rubygems_version: 2.6.11
283
+ rubygems_version: 2.5.2
283
284
  signing_key:
284
285
  specification_version: 4
285
286
  summary: REST API for the Solidus e-commerce framework.