spree_cm_commissioner 1.8.4 → 1.8.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 23dc6ecf893ca834e63e31cfe256b1303e12449683612adcabad907e90ff1470
4
- data.tar.gz: 7bfe596bd800a4c86efd8bfd08b32822aa2ec4b1b8a692e6cd7ce11f4126c442
3
+ metadata.gz: 53d7b7682c7178ee43a82fa1bed180bff277284eb4cc11790f7b9286d4aa2c98
4
+ data.tar.gz: e352ffca56db709ce091fd5d1900b0893ef86fc55a0c0254da1443cad454a49f
5
5
  SHA512:
6
- metadata.gz: 399cc8af5b317b52c29bfe9e5dc8466c44b6397af50184d645120929ac1d5fab30b0cc099b243bbbe2393d6e18dccef4f5fcb32477f9ffa8c24335a8b18f46fc
7
- data.tar.gz: b61c2a45b6631a45535163f3fb82cc4201a3fce10b3bfb4fcc49fb981b79fc3d3042ee98dad896c5934c540e61525e301fd7f56ec479640c08897064d7bab82c
6
+ metadata.gz: ab207fab5a440fb505cb157f7d29070c3d0f53a89117854bcdfceb0141e9cea8cc497d73d80afae1b6921c79b566744b52e86e4783c747527fa36bfb19505e5a
7
+ data.tar.gz: 790e0b20a95d9a52c525b1e0528f6421479742d2713fd87fc325e3b69c09ab8c6804db3969fee36256d13e728ace25277a2a2f3e96aad496ff3e02fa0695d2ac
data/Gemfile.lock CHANGED
@@ -34,7 +34,7 @@ GIT
34
34
  PATH
35
35
  remote: .
36
36
  specs:
37
- spree_cm_commissioner (1.8.4)
37
+ spree_cm_commissioner (1.8.5)
38
38
  activerecord-multi-tenant
39
39
  activerecord_json_validator (~> 2.1, >= 2.1.3)
40
40
  aws-sdk-cloudfront
@@ -53,6 +53,17 @@ module Spree
53
53
  render_order(result)
54
54
  end
55
55
 
56
+ def remove_line_item
57
+ spree_authorize! :update, spree_current_order, order_token
58
+
59
+ remove_line_item_service.call(
60
+ order: spree_current_order,
61
+ line_item: line_item
62
+ )
63
+
64
+ render_serialized_payload { serialized_current_order }
65
+ end
66
+
56
67
  def destroy
57
68
  spree_authorize! :update, spree_current_order, order_token
58
69
 
@@ -145,6 +156,10 @@ module Spree
145
156
  Spree::Api::Dependencies.storefront_cart_add_item_service.constantize
146
157
  end
147
158
 
159
+ def remove_line_item_service
160
+ Spree::Api::Dependencies.storefront_cart_remove_line_item_service.constantize
161
+ end
162
+
148
163
  def destroy_cart_service
149
164
  Spree::Api::Dependencies.storefront_cart_destroy_service.constantize
150
165
  end
@@ -0,0 +1,33 @@
1
+ module Spree
2
+ module Api
3
+ module V2
4
+ module Tenant
5
+ class CartPaymentMethodGroupsController < BaseController
6
+ include Spree::Api::V2::Storefront::OrderConcern
7
+
8
+ before_action :ensure_order
9
+
10
+ # override
11
+ def index
12
+ render_serialized_payload do
13
+ collection_serializer.new(collection, { include: resource_includes }).serializable_hash
14
+ end
15
+ end
16
+
17
+ # override
18
+ def collection
19
+ @collection ||= SpreeCmCommissioner::PaymentMethods::GroupByBank.new.execute(
20
+ payment_methods: spree_current_order.available_payment_methods,
21
+ preferred_payment_method_id: spree_current_user&.preferred_payment_method_id
22
+ )
23
+ end
24
+
25
+ # override
26
+ def collection_serializer
27
+ Spree::V2::Tenant::PaymentMethodGroupSerializer
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -47,6 +47,16 @@ module Spree
47
47
  render_order(result)
48
48
  end
49
49
 
50
+ def create_payment
51
+ result = create_payment_service.call(order: spree_current_order, params: params)
52
+
53
+ if result.success?
54
+ render_serialized_payload(201) { serialize_resource(spree_current_order.reload) }
55
+ else
56
+ render_error_payload(result.error)
57
+ end
58
+ end
59
+
50
60
  private
51
61
 
52
62
  def wrap_with_multitenant_without(&block)
@@ -72,6 +82,10 @@ module Spree
72
82
  def update_service
73
83
  Spree::Api::Dependencies.storefront_checkout_update_service.constantize
74
84
  end
85
+
86
+ def create_payment_service
87
+ Vpago::Payments::FindOrCreate
88
+ end
75
89
  end
76
90
  end
77
91
  end
@@ -3,7 +3,7 @@ module SpreeCmCommissioner
3
3
  private
4
4
 
5
5
  def abilities_to_register
6
- super << SpreeCmCommissioner::CheckInAbility
6
+ super.reject { |ability| ability == Spree::VendorAbility } << SpreeCmCommissioner::CheckInAbility
7
7
  end
8
8
 
9
9
  def current_ability
@@ -31,7 +31,7 @@ module SpreeCmCommissioner
31
31
  base.has_one :invoice, dependent: :destroy, class_name: 'SpreeCmCommissioner::Invoice'
32
32
  base.has_one :customer, class_name: 'SpreeCmCommissioner::Customer', through: :subscription
33
33
 
34
- base.belongs_to :tenant, class_name: 'SpreeCmCommissioner::Tenant'
34
+ base.belongs_to :tenant, class_name: 'SpreeCmCommissioner::Tenant', optional: true
35
35
  base.belongs_to :subscription, class_name: 'SpreeCmCommissioner::Subscription', optional: true
36
36
 
37
37
  base.has_many :taxons, class_name: 'Spree::Taxon', through: :customer
@@ -7,6 +7,7 @@ module SpreeCmCommissioner
7
7
 
8
8
  base.preference :background_color, :string
9
9
  base.preference :foreground_color, :string
10
+ base.preference :reports, :array, default: []
10
11
 
11
12
  base.has_many :taxon_vendors, class_name: 'SpreeCmCommissioner::TaxonVendor'
12
13
  base.has_many :vendors, through: :taxon_vendors
@@ -3,7 +3,11 @@ module SpreeCmCommissioner
3
3
  extend FriendlyId
4
4
  friendly_id :name, use: :history
5
5
 
6
- has_many :vendors, class_name: 'Spree::Vendor'
6
+ has_many :vendors, class_name: 'Spree::Vendor', inverse_of: :tenant
7
+ has_many :orders, class_name: 'Spree::Order', inverse_of: :tenant
8
+ has_many :tenant_payment_methods, class_name: 'Spree::PaymentMethod',
9
+ through: :vendors,
10
+ source: :payment_methods
7
11
 
8
12
  enum state: { enabled: 0, disabled: 1 }
9
13
 
@@ -0,0 +1,11 @@
1
+ module Spree
2
+ module V2
3
+ module Tenant
4
+ class PaymentMethodGroupSerializer < BaseSerializer
5
+ attributes :name
6
+
7
+ has_many :payment_methods, serializer: Spree::V2::Tenant::PaymentMethodSerializer
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ module Spree
2
+ module V2
3
+ module Tenant
4
+ class PaymentMethodSerializer < BaseSerializer
5
+ attributes :type, :name, :description, :public_metadata
6
+
7
+ attribute :preferences do |object|
8
+ object.public_preferences.as_json
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
data/config/routes.rb CHANGED
@@ -466,6 +466,7 @@ Spree::Core::Engine.add_routes do
466
466
 
467
467
  resource :cart, controller: :cart, only: %i[show create destroy] do
468
468
  post :add_item
469
+ delete 'remove_line_item/:line_item_id', to: 'cart#remove_line_item', as: :cart_remove_line_item
469
470
  patch :set_quantity
470
471
  patch :apply_coupon_code
471
472
  delete 'remove_coupon_code/:coupon_code', to: 'cart#remove_coupon_code', as: :cart_remove_coupon_code
@@ -479,6 +480,7 @@ Spree::Core::Engine.add_routes do
479
480
  patch :next
480
481
  patch :advance
481
482
  patch :complete
483
+ post :create_payment
482
484
  end
483
485
 
484
486
  resources :customer_notifications, only: [:show]
@@ -492,6 +494,7 @@ Spree::Core::Engine.add_routes do
492
494
  end
493
495
 
494
496
  resources :user_account_linkages, only: %i[index create destroy]
497
+ resources :cart_payment_method_groups, only: %i[index]
495
498
  resource :s3_signed_urls
496
499
  resource :profile_images, only: %i[update destroy]
497
500
  resources :line_items, only: %i[index show]
@@ -1,5 +1,5 @@
1
1
  module SpreeCmCommissioner
2
- VERSION = '1.8.4'.freeze
2
+ VERSION = '1.8.5'.freeze
3
3
 
4
4
  module_function
5
5
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_cm_commissioner
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.4
4
+ version: 1.8.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - You
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-03-21 00:00:00.000000000 Z
11
+ date: 2025-03-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree
@@ -819,6 +819,7 @@ files:
819
819
  - app/controllers/spree/api/v2/tenant/base_controller.rb
820
820
  - app/controllers/spree/api/v2/tenant/cart_controller.rb
821
821
  - app/controllers/spree/api/v2/tenant/cart_guests_controller.rb
822
+ - app/controllers/spree/api/v2/tenant/cart_payment_method_groups_controller.rb
822
823
  - app/controllers/spree/api/v2/tenant/checkout_controller.rb
823
824
  - app/controllers/spree/api/v2/tenant/customer_notifications_controller.rb
824
825
  - app/controllers/spree/api/v2/tenant/guests_controller.rb
@@ -1462,6 +1463,8 @@ files:
1462
1463
  - app/serializers/spree/v2/tenant/option_type_serializer.rb
1463
1464
  - app/serializers/spree/v2/tenant/option_value_serializer.rb
1464
1465
  - app/serializers/spree/v2/tenant/order_serializer.rb
1466
+ - app/serializers/spree/v2/tenant/payment_method_group_serializer.rb
1467
+ - app/serializers/spree/v2/tenant/payment_method_serializer.rb
1465
1468
  - app/serializers/spree/v2/tenant/role_serializer.rb
1466
1469
  - app/serializers/spree/v2/tenant/s3_signed_url_serializer.rb
1467
1470
  - app/serializers/spree/v2/tenant/stock_item_serializer.rb