spree_api 4.0.2 → 4.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7c0e5548a962fc184efb5acee56e3349d2280f77ee6f3cec4cf96f57f1ca6790
4
- data.tar.gz: 7179cfd1aa74207e58e54e8b6aff45110ece30b043a3d9ee57e5bc0ad31fe15b
3
+ metadata.gz: f21f980bf369f842af1f92aa2234dd50a2cb0a771db1006a1b04e2ee477dc543
4
+ data.tar.gz: 7862b9db952f6e4c5f50076d03ea2baf9d093af4d796a431ad144b801915324a
5
5
  SHA512:
6
- metadata.gz: 39b32f8a83d3cad4028f6719adb391ab5b710b7049735aef350823f88116e373ba657880726c38e26f12860aaa6d850aa7a42f004b556acdf4c9bc5b45c92bca
7
- data.tar.gz: 1086592c64ae7bbb78188e2db63295c021d5ce3f389ee79ee86cda9b50b1c8b9b7e36e67afed01f2e7463f3a920a263b999fb5dbacd297852d58640c90e42fb1
6
+ metadata.gz: 3c8e55ea83744e23cb10361d459f4e0319be8795a238592122138d1bc5e01d2b75a427fb1371cb77077525453852fba12c67f393da31d79c093d3e4f771f4b2f
7
+ data.tar.gz: a7036f87c3cb6cf2553a1c5ad49f5f3d53c48a2e7e967ef03f88ed9fc5df3f78776a13625e64578ac3551c09a9ceafb68ac48d2cdd73d2bf5047591bc05df72e
@@ -6,6 +6,7 @@ module Spree
6
6
  include Spree::Core::ControllerHelpers::StrongParameters
7
7
  rescue_from ActiveRecord::RecordNotFound, with: :record_not_found
8
8
  rescue_from CanCan::AccessDenied, with: :access_denied
9
+ rescue_from Spree::Core::GatewayError, with: :gateway_error
9
10
 
10
11
  def content_type
11
12
  Spree::Api::Config[:api_v2_content_type]
@@ -55,7 +56,12 @@ module Spree
55
56
  end
56
57
 
57
58
  def spree_current_user
58
- @spree_current_user ||= Spree.user_class.find_by(id: doorkeeper_token.resource_owner_id) if doorkeeper_token
59
+ return nil unless doorkeeper_token
60
+ return @spree_current_user if @spree_current_user
61
+
62
+ doorkeeper_authorize!
63
+
64
+ @spree_current_user ||= Spree.user_class.find_by(id: doorkeeper_token.resource_owner_id)
59
65
  end
60
66
 
61
67
  def spree_authorize!(action, subject, *args)
@@ -115,6 +121,10 @@ module Spree
115
121
  def access_denied(exception)
116
122
  render_error_payload(exception.message, 403)
117
123
  end
124
+
125
+ def gateway_error(exception)
126
+ render_error_payload(exception.message)
127
+ end
118
128
  end
119
129
  end
120
130
  end
@@ -0,0 +1,77 @@
1
+ module Spree
2
+ module Api
3
+ module V2
4
+ module Storefront
5
+ module Account
6
+ class AddressesController < ::Spree::Api::V2::BaseController
7
+ before_action :require_spree_current_user
8
+
9
+ def index
10
+ render_serialized_payload { serialize_collection(collection) }
11
+ end
12
+
13
+ def create
14
+ result = create_service.call(user: spree_current_user, address_params: address_params)
15
+ render_result(result)
16
+ end
17
+
18
+ def update
19
+ result = update_service.call(address: resource, address_params: address_params)
20
+ render_result(result)
21
+ end
22
+
23
+ private
24
+
25
+ def collection
26
+ collection_finder.new(scope: scope, params: params).execute
27
+ end
28
+
29
+ def resource
30
+ @resource ||= scope.find(params[:id])
31
+ end
32
+
33
+ def scope
34
+ spree_current_user.addresses
35
+ end
36
+
37
+ def collection_finder
38
+ Spree::Api::Dependencies.storefront_address_finder.constantize
39
+ end
40
+
41
+ def collection_serializer
42
+ Spree::Api::Dependencies.storefront_address_serializer.constantize
43
+ end
44
+
45
+ def resource_serializer
46
+ Spree::Api::Dependencies.storefront_address_serializer.constantize
47
+ end
48
+
49
+ def serialize_collection(collection)
50
+ collection_serializer.new(collection).serializable_hash
51
+ end
52
+
53
+ def create_service
54
+ Spree::Api::Dependencies.storefront_account_create_address_service.constantize
55
+ end
56
+
57
+ def update_service
58
+ Spree::Api::Dependencies.storefront_account_update_address_service.constantize
59
+ end
60
+
61
+ def address_params
62
+ params.require(:address).permit(permitted_address_attributes)
63
+ end
64
+
65
+ def render_result(result)
66
+ if result.success?
67
+ render_serialized_payload { serialize_resource(result.value) }
68
+ else
69
+ render_error_payload(result.error)
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
@@ -35,11 +35,11 @@ module Spree
35
35
  end
36
36
 
37
37
  def collection_serializer
38
- Spree::Api::Dependencies.storefront_cart_serializer.constantize
38
+ Spree::Api::Dependencies.storefront_order_serializer.constantize
39
39
  end
40
40
 
41
41
  def resource_serializer
42
- Spree::Api::Dependencies.storefront_cart_serializer.constantize
42
+ Spree::Api::Dependencies.storefront_order_serializer.constantize
43
43
  end
44
44
 
45
45
  def collection_finder
@@ -65,7 +65,11 @@ module Spree
65
65
  def shipping_rates
66
66
  result = shipping_rates_service.call(order: spree_current_order)
67
67
 
68
- render_serialized_payload { serialize_shipping_rates(result.value) }
68
+ if result.success?
69
+ render_serialized_payload { serialize_shipping_rates(result.value) }
70
+ else
71
+ render_error_payload(result.error)
72
+ end
69
73
  end
70
74
 
71
75
  def payment_methods
@@ -121,8 +125,7 @@ module Spree
121
125
  def serialize_shipping_rates(shipments)
122
126
  shipping_rates_serializer.new(
123
127
  shipments,
124
- include: [:shipping_rates],
125
- params: { show_rates: true }
128
+ include: [:shipping_rates, :stock_location]
126
129
  ).serializable_hash
127
130
  end
128
131
  end
@@ -5,6 +5,8 @@ module Spree
5
5
  class OrderStatusController < ::Spree::Api::V2::BaseController
6
6
  include Spree::Api::V2::Storefront::OrderConcern
7
7
 
8
+ before_action :ensure_order_token
9
+
8
10
  def show
9
11
  render_serialized_payload { serialize_resource(resource) }
10
12
  end
@@ -25,6 +27,10 @@ module Spree
25
27
  def resource_serializer
26
28
  Spree::Api::Dependencies.storefront_cart_serializer.constantize
27
29
  end
30
+
31
+ def ensure_order_token
32
+ raise ActiveRecord::RecordNotFound unless order_token.present?
33
+ end
28
34
  end
29
35
  end
30
36
  end
@@ -0,0 +1,27 @@
1
+ module Spree
2
+ module Api
3
+ module V2
4
+ module Storefront
5
+ class StoresController < ::Spree::Api::V2::BaseController
6
+ def show
7
+ render_serialized_payload { serialize_resource(resource) }
8
+ end
9
+
10
+ private
11
+
12
+ def scope
13
+ Spree::Store
14
+ end
15
+
16
+ def resource
17
+ scope.find_by!(code: params[:code])
18
+ end
19
+
20
+ def resource_serializer
21
+ Spree::Api::Dependencies.storefront_store_serializer.constantize
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -13,7 +13,9 @@ module Spree
13
13
  :storefront_country_serializer, :storefront_current_order_finder, :storefront_completed_order_finder, :storefront_order_sorter,
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
- :storefront_cart_update_service, :storefront_cart_estimate_shipping_rates_service, :storefront_estimated_shipment_serializer
16
+ :storefront_cart_update_service, :storefront_cart_estimate_shipping_rates_service, :storefront_estimated_shipment_serializer,
17
+ :storefront_store_serializer, :storefront_address_serializer, :storefront_order_serializer,
18
+ :storefront_account_create_address_service, :storefront_account_update_address_service, :storefront_address_finder
17
19
  ].freeze
18
20
 
19
21
  attr_accessor *INJECTION_POINTS
@@ -48,7 +50,12 @@ module Spree
48
50
  @storefront_checkout_remove_store_credit_service = Spree::Dependencies.checkout_remove_store_credit_service
49
51
  @storefront_checkout_get_shipping_rates_service = Spree::Dependencies.checkout_get_shipping_rates_service
50
52
 
53
+ # account services
54
+ @storefront_account_create_address_service = Spree::Dependencies.account_create_address_service
55
+ @storefront_account_update_address_service = Spree::Dependencies.account_update_address_service
56
+
51
57
  # serializers
58
+ @storefront_address_serializer = 'Spree::V2::Storefront::AddressSerializer'
52
59
  @storefront_cart_serializer = 'Spree::V2::Storefront::CartSerializer'
53
60
  @storefront_credit_card_serializer = 'Spree::V2::Storefront::CreditCardSerializer'
54
61
  @storefront_country_serializer = 'Spree::V2::Storefront::CountrySerializer'
@@ -58,6 +65,8 @@ module Spree
58
65
  @storefront_payment_method_serializer = 'Spree::V2::Storefront::PaymentMethodSerializer'
59
66
  @storefront_product_serializer = 'Spree::V2::Storefront::ProductSerializer'
60
67
  @storefront_estimated_shipment_serializer = 'Spree::V2::Storefront::EstimatedShippingRateSerializer'
68
+ @storefront_store_serializer = 'Spree::V2::Storefront::StoreSerializer'
69
+ @storefront_order_serializer = 'Spree::V2::Storefront::CartSerializer'
61
70
 
62
71
  # sorters
63
72
  @storefront_order_sorter = Spree::Dependencies.order_sorter
@@ -67,6 +76,7 @@ module Spree
67
76
  @storefront_collection_paginator = Spree::Dependencies.collection_paginator
68
77
 
69
78
  # finders
79
+ @storefront_address_finder = Spree::Dependencies.address_finder
70
80
  @storefront_country_finder = Spree::Dependencies.country_finder
71
81
  @storefront_current_order_finder = Spree::Dependencies.current_order_finder
72
82
  @storefront_completed_order_finder = Spree::Dependencies.completed_order_finder
@@ -8,7 +8,9 @@ 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,
13
+ :shipment_state, :payment_state
12
14
 
13
15
  has_many :line_items
14
16
  has_many :variants
@@ -20,12 +22,14 @@ module Spree
20
22
 
21
23
  belongs_to :user
22
24
  belongs_to :billing_address,
23
- id_method_name: :bill_address_id,
24
- serializer: :address
25
+ id_method_name: :bill_address_id,
26
+ serializer: :address,
27
+ record_type: :address
25
28
 
26
29
  belongs_to :shipping_address,
27
- id_method_name: :ship_address_id,
28
- serializer: :address
30
+ id_method_name: :ship_address_id,
31
+ serializer: :address,
32
+ record_type: :address
29
33
  end
30
34
  end
31
35
  end
@@ -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
@@ -8,7 +8,7 @@ module Spree
8
8
  has_one :payment_method
9
9
 
10
10
  attributes :amount, :response_code, :number, :cvv_response_code, :cvv_response_message,
11
- :payment_method_id, :payment_method_name
11
+ :payment_method_id, :payment_method_name, :state
12
12
  end
13
13
  end
14
14
  end
@@ -9,7 +9,9 @@ module Spree
9
9
 
10
10
  attribute :free, &:free?
11
11
 
12
- has_many :shipping_rates, if: proc { |_record, params| params&.dig(:show_rates) }
12
+ has_many :shipping_rates
13
+
14
+ belongs_to :stock_location
13
15
  end
14
16
  end
15
17
  end
@@ -0,0 +1,11 @@
1
+ module Spree
2
+ module V2
3
+ module Storefront
4
+ class StockLocationSerializer < BaseSerializer
5
+ set_type :stock_location
6
+
7
+ attributes :name
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module Spree
2
+ module V2
3
+ module Storefront
4
+ class StoreCreditCategorySerializer < BaseSerializer
5
+ set_type :store_credit_category
6
+
7
+ attributes :name
8
+ end
9
+ end
10
+ end
11
+ end
@@ -4,7 +4,7 @@ module Spree
4
4
  class StoreCreditSerializer < BaseSerializer
5
5
  set_type :store_credit
6
6
 
7
- belongs_to :category
7
+ belongs_to :category, serializer: :store_credit_category
8
8
  has_many :store_credit_events
9
9
  belongs_to :credit_type,
10
10
  id_method_name: :type_id,
@@ -0,0 +1,13 @@
1
+ module Spree
2
+ module V2
3
+ module Storefront
4
+ class StoreSerializer < BaseSerializer
5
+ set_type :store
6
+
7
+ attributes :name, :url, :meta_description, :meta_keywords, :seo_title, :default_currency, :default, :supported_currencies, :facebook,
8
+ :twitter, :instagram, :default_locale, :customer_support_email, :default_country_id, :description,
9
+ :address, :contact_phone, :contact_email
10
+ end
11
+ end
12
+ end
13
+ end
@@ -4,7 +4,7 @@ module Spree
4
4
  class TaxonSerializer < BaseSerializer
5
5
  set_type :taxon
6
6
 
7
- attributes :name, :pretty_name, :permalink, :seo_title, :meta_title, :meta_description,
7
+ attributes :name, :pretty_name, :permalink, :seo_title, :description, :meta_title, :meta_description,
8
8
  :meta_keywords, :left, :right, :position, :depth, :updated_at
9
9
 
10
10
  attribute :is_root, &:root?
data/config/routes.rb CHANGED
@@ -152,6 +152,7 @@ Spree::Core::Engine.add_routes do
152
152
  resource :account, controller: :account, only: %i[show]
153
153
 
154
154
  namespace :account do
155
+ resources :addresses, controller: :addresses, only: %i[index create update]
155
156
  resources :credit_cards, controller: :credit_cards, only: %i[index show]
156
157
  resources :orders, controller: :orders, only: %i[index show]
157
158
  end
@@ -160,7 +161,8 @@ Spree::Core::Engine.add_routes do
160
161
  get '/countries/:iso', to: 'countries#show', as: :country
161
162
  get '/order_status/:number', to: 'order_status#show', as: :order_status
162
163
  resources :products, only: %i[index show]
163
- resources :taxons, only: %i[index show]
164
+ resources :taxons, only: %i[index show], id: /.+/
165
+ get '/stores/:code', to: 'stores#show', as: :store
164
166
  end
165
167
  end
166
168
 
@@ -162,6 +162,8 @@ paths:
162
162
  - $ref: '#/components/parameters/OrderParam'
163
163
  - $ref: '#/components/parameters/CartIncludeParam'
164
164
  - $ref: '#/components/parameters/SparseFieldsParam'
165
+ security:
166
+ - orderToken: []
165
167
  '/cart':
166
168
  post:
167
169
  description: >-
@@ -1121,6 +1123,14 @@ components:
1121
1123
  company:
1122
1124
  type: string
1123
1125
  example: 'Google Inc.'
1126
+ AddressList:
1127
+ required:
1128
+ - data
1129
+ properties:
1130
+ data:
1131
+ type: array
1132
+ items:
1133
+ $ref: '#/components/schemas/Address'
1124
1134
  Cart:
1125
1135
  required:
1126
1136
  - data
@@ -1287,6 +1297,18 @@ components:
1287
1297
  display_tax_total:
1288
1298
  type: string
1289
1299
  example: '$10.00'
1300
+ pre_tax_item_amount:
1301
+ type: string
1302
+ example: '17.00'
1303
+ display_pre_tax_item_amount:
1304
+ type: string
1305
+ example: '$17.00'
1306
+ pre_tax_total:
1307
+ type: string
1308
+ example: '20.00'
1309
+ display_pre_tax_total:
1310
+ type: string
1311
+ example: '$20.00'
1290
1312
  item_count:
1291
1313
  type: number
1292
1314
  example: 2
@@ -1499,6 +1521,12 @@ components:
1499
1521
  display_discounted_amount:
1500
1522
  type: string
1501
1523
  example: '$125.00'
1524
+ pre_tax_amount:
1525
+ type: string
1526
+ example: '125.0'
1527
+ display_pre_tax_amount:
1528
+ type: string
1529
+ example: '$125.00'
1502
1530
  promo_total:
1503
1531
  type: string
1504
1532
  example: '-5.0'
@@ -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)
@@ -27,6 +27,8 @@ shared_examples 'returns valid cart JSON' do
27
27
  expect(json_response['data']).to have_type('cart')
28
28
  expect(json_response['data']).to have_attribute(:number).with_value(order.number)
29
29
  expect(json_response['data']).to have_attribute(:state).with_value(order.state)
30
+ expect(json_response['data']).to have_attribute(:payment_state).with_value(order.payment_state)
31
+ expect(json_response['data']).to have_attribute(:shipment_state).with_value(order.shipment_state)
30
32
  expect(json_response['data']).to have_attribute(:token).with_value(order.token)
31
33
  expect(json_response['data']).to have_attribute(:total).with_value(order.total.to_s)
32
34
  expect(json_response['data']).to have_attribute(:item_total).with_value(order.item_total.to_s)
@@ -48,6 +50,10 @@ shared_examples 'returns valid cart JSON' do
48
50
  expect(json_response['data']).to have_attribute(:promo_total).with_value(order.promo_total.to_s)
49
51
  expect(json_response['data']).to have_attribute(:display_promo_total).with_value(order.display_promo_total.to_s)
50
52
  expect(json_response['data']).to have_attribute(:display_total).with_value(order.display_total.to_s)
53
+ expect(json_response['data']).to have_attribute(:pre_tax_item_amount).with_value(order.pre_tax_item_amount.to_s)
54
+ expect(json_response['data']).to have_attribute(:display_pre_tax_item_amount).with_value(order.display_pre_tax_item_amount.to_s)
55
+ expect(json_response['data']).to have_attribute(:pre_tax_total).with_value(order.pre_tax_total.to_s)
56
+ expect(json_response['data']).to have_attribute(:display_pre_tax_total).with_value(order.display_pre_tax_total.to_s)
51
57
  expect(json_response['data']).to have_relationships(:user, :line_items, :variants, :billing_address, :shipping_address, :payments, :shipments, :promotions)
52
58
  end
53
59
  end
data/spree_api.gemspec CHANGED
@@ -2,20 +2,27 @@
2
2
  require_relative '../core/lib/spree/core/version.rb'
3
3
 
4
4
  Gem::Specification.new do |s|
5
+ s.name = "spree_api"
6
+ s.version = Spree.version
5
7
  s.authors = ["Ryan Bigg"]
6
8
  s.email = ["ryan@spreecommerce.com"]
7
- s.description = %q{Spree's API}
8
9
  s.summary = %q{Spree's API}
10
+ s.description = %q{Spree's API}
9
11
  s.homepage = 'http://spreecommerce.org'
10
12
  s.license = 'BSD-3-Clause'
11
13
 
14
+ s.metadata = {
15
+ "bug_tracker_uri" => "https://github.com/spree/spree/issues",
16
+ "changelog_uri" => "https://github.com/spree/spree/releases/tag/v#{s.version}",
17
+ "documentation_uri" => "https://guides.spreecommerce.org/",
18
+ "source_code_uri" => "https://github.com/spree/spree/tree/v#{s.version}",
19
+ }
20
+
12
21
  s.required_ruby_version = '>= 2.5.0'
13
22
 
14
23
  s.files = `git ls-files`.split($\).reject { |f| f.match(/^spec/) && !f.match(/^spec\/fixtures/) }
15
24
  s.executables = s.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
16
- s.name = "spree_api"
17
25
  s.require_paths = ["lib"]
18
- s.version = Spree.version
19
26
 
20
27
  s.add_development_dependency 'jsonapi-rspec'
21
28
 
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.0.2
4
+ version: 4.0.7
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: 2019-11-21 00:00:00.000000000 Z
11
+ date: 2021-03-05 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.0.2
33
+ version: 4.0.7
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.0.2
40
+ version: 4.0.7
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rabl
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -133,6 +133,7 @@ files:
133
133
  - app/controllers/spree/api/v1/variants_controller.rb
134
134
  - app/controllers/spree/api/v1/zones_controller.rb
135
135
  - app/controllers/spree/api/v2/base_controller.rb
136
+ - app/controllers/spree/api/v2/storefront/account/addresses_controller.rb
136
137
  - app/controllers/spree/api/v2/storefront/account/credit_cards_controller.rb
137
138
  - app/controllers/spree/api/v2/storefront/account/orders_controller.rb
138
139
  - app/controllers/spree/api/v2/storefront/account_controller.rb
@@ -141,6 +142,7 @@ files:
141
142
  - app/controllers/spree/api/v2/storefront/countries_controller.rb
142
143
  - app/controllers/spree/api/v2/storefront/order_status_controller.rb
143
144
  - app/controllers/spree/api/v2/storefront/products_controller.rb
145
+ - app/controllers/spree/api/v2/storefront/stores_controller.rb
144
146
  - app/controllers/spree/api/v2/storefront/taxons_controller.rb
145
147
  - app/helpers/spree/api/api_helpers.rb
146
148
  - app/helpers/spree/api/v2/collection_options_helpers.rb
@@ -166,9 +168,12 @@ files:
166
168
  - app/serializers/spree/v2/storefront/shipment_serializer.rb
167
169
  - app/serializers/spree/v2/storefront/shipping_rate_serializer.rb
168
170
  - app/serializers/spree/v2/storefront/state_serializer.rb
171
+ - app/serializers/spree/v2/storefront/stock_location_serializer.rb
172
+ - app/serializers/spree/v2/storefront/store_credit_category_serializer.rb
169
173
  - app/serializers/spree/v2/storefront/store_credit_event_serializer.rb
170
174
  - app/serializers/spree/v2/storefront/store_credit_serializer.rb
171
175
  - app/serializers/spree/v2/storefront/store_credit_type_serializer.rb
176
+ - app/serializers/spree/v2/storefront/store_serializer.rb
172
177
  - app/serializers/spree/v2/storefront/taxon_image_serializer.rb
173
178
  - app/serializers/spree/v2/storefront/taxon_serializer.rb
174
179
  - app/serializers/spree/v2/storefront/taxonomy_serializer.rb
@@ -300,8 +305,12 @@ files:
300
305
  homepage: http://spreecommerce.org
301
306
  licenses:
302
307
  - BSD-3-Clause
303
- metadata: {}
304
- post_install_message:
308
+ metadata:
309
+ bug_tracker_uri: https://github.com/spree/spree/issues
310
+ changelog_uri: https://github.com/spree/spree/releases/tag/v4.0.7
311
+ documentation_uri: https://guides.spreecommerce.org/
312
+ source_code_uri: https://github.com/spree/spree/tree/v4.0.7
313
+ post_install_message:
305
314
  rdoc_options: []
306
315
  require_paths:
307
316
  - lib
@@ -316,8 +325,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
316
325
  - !ruby/object:Gem::Version
317
326
  version: '0'
318
327
  requirements: []
319
- rubygems_version: 3.0.2
320
- signing_key:
328
+ rubygems_version: 3.2.3
329
+ signing_key:
321
330
  specification_version: 4
322
331
  summary: Spree's API
323
332
  test_files: []