Skip to content

Commit 6f83529

Browse files
committed
Restore general ecommerce configuration
General ecommerce configuration does not need to be used directly. It enables all contexts at once, but from Hanami perspective, it is better to enable each context within proper slice.
1 parent 677baa0 commit 6f83529

File tree

3 files changed

+26
-38
lines changed

3 files changed

+26
-38
lines changed

ecommerce/configuration.rb

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
# require_relative "ordering/lib/ordering"
2-
# require_relative "pricing/lib/pricing"
3-
# require_relative "product_catalog/lib/product_catalog"
1+
require_relative "ordering/lib/ordering"
2+
require_relative "pricing/lib/pricing"
3+
require_relative "product_catalog/lib/product_catalog"
44
require_relative "crm/lib/crm"
5-
# require_relative "payments/lib/payments"
6-
# require_relative "inventory/lib/inventory"
7-
# require_relative "shipping/lib/shipping"
8-
# require_relative "invoicing/lib/invoicing"
9-
# require_relative "taxes/lib/taxes"
10-
# require_relative "processes/lib/processes"
5+
require_relative "payments/lib/payments"
6+
require_relative "inventory/lib/inventory"
7+
require_relative "shipping/lib/shipping"
8+
require_relative "invoicing/lib/invoicing"
9+
require_relative "taxes/lib/taxes"
10+
require_relative "processes/lib/processes"
1111

1212
module Ecommerce
1313
class Configuration
@@ -19,29 +19,29 @@ def initialize(number_generator: nil, payment_gateway: nil, available_vat_rates:
1919

2020
def call(cqrs)
2121
configure_bounded_contexts(cqrs)
22-
# configure_processes(cqrs)
22+
configure_processes(cqrs)
2323
end
2424

2525
def configure_bounded_contexts(cqrs)
2626
raise ArgumentError.new(
2727
"Neither number_generator nor payment_gateway can be null"
2828
) if @number_generator.nil? || @payment_gateway.nil?
2929
[
30-
# Shipments::Configuration.new,
31-
# Ordering::Configuration.new(@number_generator),
32-
# Pricing::Configuration.new,
33-
# Payments::Configuration.new(@payment_gateway),
34-
# ProductCatalog::Configuration.new,
30+
Shipments::Configuration.new,
31+
Ordering::Configuration.new(@number_generator),
32+
Pricing::Configuration.new,
33+
Payments::Configuration.new(@payment_gateway),
34+
ProductCatalog::Configuration.new,
3535
Crm::Configuration.new,
36-
# Inventory::Configuration.new,
37-
# Shipping::Configuration.new,
38-
# Invoicing::Configuration.new,
39-
# Taxes::Configuration.new(@available_vat_rates)
36+
Inventory::Configuration.new,
37+
Shipping::Configuration.new,
38+
Invoicing::Configuration.new,
39+
Taxes::Configuration.new(@available_vat_rates)
4040
].each { |c| c.call(cqrs) }
4141
end
4242

43-
# def configure_processes(cqrs)
44-
# Processes::Configuration.new.call(cqrs)
45-
# end
43+
def configure_processes(cqrs)
44+
Processes::Configuration.new.call(cqrs)
45+
end
4646
end
4747
end

hanami_application/config/providers/cqrs.rb

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,4 @@
88

99
register "cqrs", cqrs
1010
end
11-
12-
start do
13-
require_relative "../../../ecommerce/configuration"
14-
15-
Ecommerce::Configuration.new(
16-
number_generator: -> { Ordering::NumberGenerator.new },
17-
payment_gateway: -> { @gateway ||= Payments::FakeGateway.new },
18-
available_vat_rates: [
19-
Infra::Types::VatRate.new(code: "10", rate: 10),
20-
Infra::Types::VatRate.new(code: "20", rate: 20)
21-
]
22-
).call(container['cqrs'])
23-
end
2411
end

hanami_application/slices/crm/config/providers/cqrs.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
# frozen_string_literal: true
22

3-
Crm::Container.register_provider :subscriptions do |container|
3+
Crm::Container.register_provider :cqrs do |container|
44
prepare do
5-
pp 'CRM subscriptions prepared'
5+
cqrs = container['application.cqrs']
6+
require_relative '../../../../../ecommerce/crm/lib/crm'
7+
Crm::Configuration.new.call(cqrs)
68
end
79

810
start do
911
cqrs = container['application.cqrs']
1012
repo = container['repositories.customers']
1113

12-
pp 'CRM subscriptions started'
1314
cqrs.subscribe(
1415
-> (event) { repo.create(id: event.data.fetch(:customer_id), name: event.data.fetch(:name)) },
1516
[Crm::CustomerRegistered]

0 commit comments

Comments
 (0)