@reventlessdev/online-shop-aggregates-ordering 3.0.0-alpha.244 → 3.0.0-alpha.246
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.
- package/CHANGELOG.md +15 -0
- package/lib/bs/.compiler.log +2 -2
- package/lib/bs/OrderingPlugin.cmi +0 -0
- package/lib/bs/OrderingPlugin.cmt +0 -0
- package/lib/bs/OrderingPlugin.mlmap +2 -0
- package/lib/bs/compiler-info.json +1 -1
- package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct.ast +0 -0
- package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct.res +2 -0
- package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct_Behavior-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/CatalogProduct/Aggregate/CatalogProduct_Behavior-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts.ast +0 -0
- package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts.res +2 -0
- package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts_Projections-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts_Projections-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/CatalogProduct/ReadModel/AvailableProducts_Projections.res.mjs +4 -4
- package/lib/bs/src/Customer/Aggregate/Customer-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Customer/Aggregate/Customer-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Customer/Aggregate/Customer.ast +0 -0
- package/lib/bs/src/Customer/Aggregate/Customer.res +2 -0
- package/lib/bs/src/Customer/Aggregate/Customer_Behavior-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Customer/Aggregate/Customer_Behavior-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Customer/CustomerId-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Customer/CustomerId-OrderingPlugin.cmj +0 -0
- package/lib/bs/src/Customer/CustomerId-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Customer/CustomerId.ast +0 -0
- package/lib/bs/src/Customer/CustomerId.res +4 -0
- package/lib/bs/src/Customer/CustomerId.res.mjs +29 -0
- package/lib/bs/src/Customer/ReadModel/Customers-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Customer/ReadModel/Customers-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Customer/ReadModel/Customers.ast +0 -0
- package/lib/bs/src/Customer/ReadModel/Customers.res +2 -0
- package/lib/bs/src/Customer/ReadModel/Customers_Projections-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Customer/ReadModel/Customers_Projections-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Customer/ReadModel/Customers_Projections.res.mjs +4 -4
- package/lib/bs/src/Extension/Products_Extension-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Extension/Products_Extension-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Extension/Products_Extension.ast +0 -0
- package/lib/bs/src/Extension/Products_Extension.res +6 -2
- package/lib/bs/src/Extension/Products_Extension.res.mjs +4 -3
- package/lib/bs/src/ExtensionPoint/Orders_ExtensionPointMapping-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/ExtensionPoint/Orders_ExtensionPointMapping-OrderingPlugin.cmj +0 -0
- package/lib/bs/src/ExtensionPoint/Orders_ExtensionPointMapping-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/ExtensionPoint/Orders_ExtensionPointMapping.ast +0 -0
- package/lib/bs/src/ExtensionPoint/Orders_ExtensionPointMapping.res +23 -8
- package/lib/bs/src/ExtensionPoint/Orders_ExtensionPointMapping.res.mjs +28 -20
- package/lib/bs/src/LifecycleModel-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/LifecycleModel-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Order/Aggregate/Order-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Order/Aggregate/Order-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Order/Aggregate/Order.ast +0 -0
- package/lib/bs/src/Order/Aggregate/Order.res +7 -3
- package/lib/bs/src/Order/Aggregate/Order.res.mjs +7 -6
- package/lib/bs/src/Order/Aggregate/Order_Behavior-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Order/Aggregate/Order_Behavior-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Order/Aggregate/Order_Behavior.ast +0 -0
- package/lib/bs/src/Order/Aggregate/Order_Behavior.res +1 -1
- package/lib/bs/src/Order/Aggregate/Order_Behavior.res.mjs +4 -2
- package/lib/bs/src/Order/Aggregate/Order_Mappings-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Order/Aggregate/Order_Mappings-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Order/Aggregate/Order_Mappings.res.mjs +3 -3
- package/lib/bs/src/Order/OrderId-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Order/OrderId-OrderingPlugin.cmj +0 -0
- package/lib/bs/src/Order/OrderId-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Order/OrderId.ast +0 -0
- package/lib/bs/src/Order/OrderId.res +4 -0
- package/lib/bs/src/Order/OrderId.res.mjs +29 -0
- package/lib/bs/src/Order/ReadModel/Orders-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Order/ReadModel/Orders-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Order/ReadModel/Orders.ast +0 -0
- package/lib/bs/src/Order/ReadModel/Orders.res +4 -2
- package/lib/bs/src/Order/ReadModel/Orders.res.mjs +4 -2
- package/lib/bs/src/Order/ReadModel/Orders_Projections-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Order/ReadModel/Orders_Projections-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Order/ReadModel/Orders_Projections.res.mjs +4 -4
- package/lib/bs/src/Order/SideEffect/Order_EmailNotification-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Order/SideEffect/Order_EmailNotification-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Order/SideEffect/Order_EmailNotification.ast +0 -0
- package/lib/bs/src/Order/SideEffect/Order_EmailNotification.res +4 -1
- package/lib/bs/src/Order/SideEffect/Order_EmailNotification.res.mjs +4 -3
- package/lib/bs/src/Plugin-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Plugin-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Plugin.res.mjs +15 -13
- package/lib/bs/src/Task/OrderNotifications-OrderingPlugin.cmi +0 -0
- package/lib/bs/src/Task/OrderNotifications-OrderingPlugin.cmt +0 -0
- package/lib/bs/src/Task/OrderNotifications.res.mjs +3 -3
- package/lib/bs/tests/CatalogProduct/Aggregate/CatalogProduct_GWT-OrderingPlugin.cmi +0 -0
- package/lib/bs/tests/CatalogProduct/Aggregate/CatalogProduct_GWT-OrderingPlugin.cmt +0 -0
- package/lib/bs/tests/CatalogProduct/ReadModel/AvailableProducts_GWT-OrderingPlugin.cmi +0 -0
- package/lib/bs/tests/CatalogProduct/ReadModel/AvailableProducts_GWT-OrderingPlugin.cmt +0 -0
- package/lib/bs/tests/Customer/Aggregate/Customer_GWT-OrderingPlugin.cmi +0 -0
- package/lib/bs/tests/Customer/Aggregate/Customer_GWT-OrderingPlugin.cmt +0 -0
- package/lib/bs/tests/Customer/ReadModel/Customers_GWT-OrderingPlugin.cmi +0 -0
- package/lib/bs/tests/Customer/ReadModel/Customers_GWT-OrderingPlugin.cmt +0 -0
- package/lib/bs/tests/Extension/Products_Extension_GWT-OrderingPlugin.cmi +0 -0
- package/lib/bs/tests/Extension/Products_Extension_GWT-OrderingPlugin.cmt +0 -0
- package/lib/bs/tests/Extension/Products_Extension_GWT.ast +0 -0
- package/lib/bs/tests/Extension/Products_Extension_GWT.res +4 -2
- package/lib/bs/tests/Extension/Products_Extension_GWT.res.mjs +7 -4
- package/lib/bs/tests/ExtensionPoint/Orders_ExtensionPointMapping_GWT-OrderingPlugin.cmi +0 -0
- package/lib/bs/tests/ExtensionPoint/Orders_ExtensionPointMapping_GWT-OrderingPlugin.cmt +0 -0
- package/lib/bs/tests/ExtensionPoint/Orders_ExtensionPointMapping_GWT.ast +0 -0
- package/lib/bs/tests/ExtensionPoint/Orders_ExtensionPointMapping_GWT.res +6 -2
- package/lib/bs/tests/ExtensionPoint/Orders_ExtensionPointMapping_GWT.res.mjs +18 -7
- package/lib/bs/tests/Order/Aggregate/OrderMappings_GWT-OrderingPlugin.cmi +0 -0
- package/lib/bs/tests/Order/Aggregate/OrderMappings_GWT-OrderingPlugin.cmj +0 -0
- package/lib/bs/tests/Order/Aggregate/OrderMappings_GWT-OrderingPlugin.cmt +0 -0
- package/lib/bs/tests/Order/Aggregate/OrderMappings_GWT.ast +0 -0
- package/lib/bs/tests/Order/Aggregate/OrderMappings_GWT.res +6 -4
- package/lib/bs/tests/Order/Aggregate/OrderMappings_GWT.res.mjs +19 -11
- package/lib/bs/tests/Order/Aggregate/Order_GWT-OrderingPlugin.cmi +0 -0
- package/lib/bs/tests/Order/Aggregate/Order_GWT-OrderingPlugin.cmt +0 -0
- package/lib/bs/tests/Order/Aggregate/Order_GWT.ast +0 -0
- package/lib/bs/tests/Order/Aggregate/Order_GWT.res +29 -24
- package/lib/bs/tests/Order/Aggregate/Order_GWT.res.mjs +55 -44
- package/lib/bs/tests/Order/ReadModel/Orders_GWT-OrderingPlugin.cmi +0 -0
- package/lib/bs/tests/Order/ReadModel/Orders_GWT-OrderingPlugin.cmt +0 -0
- package/lib/bs/tests/Order/ReadModel/Orders_GWT.ast +0 -0
- package/lib/bs/tests/Order/ReadModel/Orders_GWT.res +19 -14
- package/lib/bs/tests/Order/ReadModel/Orders_GWT.res.mjs +31 -20
- package/lib/bs/tests/Order/SideEffect/EmailService_Mock-OrderingPlugin.cmi +0 -0
- package/lib/bs/tests/Order/SideEffect/EmailService_Mock-OrderingPlugin.cmt +0 -0
- package/lib/bs/tests/Order/SideEffect/Order_EmailNotification_GWT-OrderingPlugin.cmi +0 -0
- package/lib/bs/tests/Order/SideEffect/Order_EmailNotification_GWT-OrderingPlugin.cmt +0 -0
- package/lib/bs/tests/Order/SideEffect/Order_EmailNotification_GWT.ast +0 -0
- package/lib/bs/tests/Order/SideEffect/Order_EmailNotification_GWT.res +5 -2
- package/lib/bs/tests/Order/SideEffect/Order_EmailNotification_GWT.res.mjs +8 -6
- package/lib/ocaml/.compiler.log +2 -2
- package/lib/ocaml/AvailableProducts-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/AvailableProducts-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/AvailableProducts.ast +0 -0
- package/lib/ocaml/AvailableProducts.res +2 -0
- package/lib/ocaml/AvailableProducts_GWT-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/AvailableProducts_GWT-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/AvailableProducts_Projections-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/AvailableProducts_Projections-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/CatalogProduct-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/CatalogProduct-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/CatalogProduct.ast +0 -0
- package/lib/ocaml/CatalogProduct.res +2 -0
- package/lib/ocaml/CatalogProduct_Behavior-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/CatalogProduct_Behavior-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/CatalogProduct_GWT-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/CatalogProduct_GWT-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Customer-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Customer-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Customer.ast +0 -0
- package/lib/ocaml/Customer.res +2 -0
- package/lib/ocaml/CustomerId-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/CustomerId-OrderingPlugin.cmj +0 -0
- package/lib/ocaml/CustomerId-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/CustomerId.ast +0 -0
- package/lib/ocaml/CustomerId.res +4 -0
- package/lib/ocaml/Customer_Behavior-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Customer_Behavior-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Customer_GWT-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Customer_GWT-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Customers-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Customers-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Customers.ast +0 -0
- package/lib/ocaml/Customers.res +2 -0
- package/lib/ocaml/Customers_GWT-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Customers_GWT-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Customers_Projections-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Customers_Projections-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/EmailService_Mock-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/EmailService_Mock-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/LifecycleModel-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/LifecycleModel-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Order-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Order-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Order.ast +0 -0
- package/lib/ocaml/Order.res +7 -3
- package/lib/ocaml/OrderId-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/OrderId-OrderingPlugin.cmj +0 -0
- package/lib/ocaml/OrderId-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/OrderId.ast +0 -0
- package/lib/ocaml/OrderId.res +4 -0
- package/lib/ocaml/OrderMappings_GWT-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/OrderMappings_GWT-OrderingPlugin.cmj +0 -0
- package/lib/ocaml/OrderMappings_GWT-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/OrderMappings_GWT.ast +0 -0
- package/lib/ocaml/OrderMappings_GWT.res +6 -4
- package/lib/ocaml/OrderNotifications-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/OrderNotifications-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Order_Behavior-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Order_Behavior-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Order_Behavior.ast +0 -0
- package/lib/ocaml/Order_Behavior.res +1 -1
- package/lib/ocaml/Order_EmailNotification-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Order_EmailNotification-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Order_EmailNotification.ast +0 -0
- package/lib/ocaml/Order_EmailNotification.res +4 -1
- package/lib/ocaml/Order_EmailNotification_GWT-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Order_EmailNotification_GWT-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Order_EmailNotification_GWT.ast +0 -0
- package/lib/ocaml/Order_EmailNotification_GWT.res +5 -2
- package/lib/ocaml/Order_GWT-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Order_GWT-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Order_GWT.ast +0 -0
- package/lib/ocaml/Order_GWT.res +29 -24
- package/lib/ocaml/Order_Mappings-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Order_Mappings-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/OrderingPlugin.cmi +0 -0
- package/lib/ocaml/OrderingPlugin.cmt +0 -0
- package/lib/ocaml/OrderingPlugin.mlmap +2 -0
- package/lib/ocaml/Orders-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Orders-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Orders.ast +0 -0
- package/lib/ocaml/Orders.res +4 -2
- package/lib/ocaml/Orders_ExtensionPointMapping-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Orders_ExtensionPointMapping-OrderingPlugin.cmj +0 -0
- package/lib/ocaml/Orders_ExtensionPointMapping-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Orders_ExtensionPointMapping.ast +0 -0
- package/lib/ocaml/Orders_ExtensionPointMapping.res +23 -8
- package/lib/ocaml/Orders_ExtensionPointMapping_GWT-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Orders_ExtensionPointMapping_GWT-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Orders_ExtensionPointMapping_GWT.ast +0 -0
- package/lib/ocaml/Orders_ExtensionPointMapping_GWT.res +6 -2
- package/lib/ocaml/Orders_GWT-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Orders_GWT-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Orders_GWT.ast +0 -0
- package/lib/ocaml/Orders_GWT.res +19 -14
- package/lib/ocaml/Orders_Projections-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Orders_Projections-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Plugin-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Plugin-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Products_Extension-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Products_Extension-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Products_Extension.ast +0 -0
- package/lib/ocaml/Products_Extension.res +6 -2
- package/lib/ocaml/Products_Extension_GWT-OrderingPlugin.cmi +0 -0
- package/lib/ocaml/Products_Extension_GWT-OrderingPlugin.cmt +0 -0
- package/lib/ocaml/Products_Extension_GWT.ast +0 -0
- package/lib/ocaml/Products_Extension_GWT.res +4 -2
- package/package.json +8 -8
- package/src/CatalogProduct/Aggregate/CatalogProduct.res +2 -0
- package/src/CatalogProduct/ReadModel/AvailableProducts.res +2 -0
- package/src/CatalogProduct/ReadModel/AvailableProducts_Projections.res.mjs +4 -4
- package/src/Customer/Aggregate/Customer.res +2 -0
- package/src/Customer/CustomerId.res +4 -0
- package/src/Customer/CustomerId.res.mjs +29 -0
- package/src/Customer/ReadModel/Customers.res +2 -0
- package/src/Customer/ReadModel/Customers_Projections.res.mjs +4 -4
- package/src/Extension/Products_Extension.res +6 -2
- package/src/Extension/Products_Extension.res.mjs +4 -3
- package/src/ExtensionPoint/Orders_ExtensionPointMapping.res +23 -8
- package/src/ExtensionPoint/Orders_ExtensionPointMapping.res.mjs +28 -20
- package/src/Order/Aggregate/Order.res +7 -3
- package/src/Order/Aggregate/Order.res.mjs +7 -6
- package/src/Order/Aggregate/Order_Behavior.res +1 -1
- package/src/Order/Aggregate/Order_Behavior.res.mjs +4 -2
- package/src/Order/Aggregate/Order_Mappings.res.mjs +3 -3
- package/src/Order/OrderId.res +4 -0
- package/src/Order/OrderId.res.mjs +29 -0
- package/src/Order/ReadModel/Orders.res +4 -2
- package/src/Order/ReadModel/Orders.res.mjs +4 -2
- package/src/Order/ReadModel/Orders_Projections.res.mjs +4 -4
- package/src/Order/SideEffect/Order_EmailNotification.res +4 -1
- package/src/Order/SideEffect/Order_EmailNotification.res.mjs +4 -3
- package/src/Plugin.res.mjs +15 -13
- package/src/Task/OrderNotifications.res.mjs +3 -3
- package/tests/Extension/Products_Extension_GWT.res +4 -2
- package/tests/Extension/Products_Extension_GWT.res.mjs +7 -4
- package/tests/ExtensionPoint/Orders_ExtensionPointMapping_GWT.res +6 -2
- package/tests/ExtensionPoint/Orders_ExtensionPointMapping_GWT.res.mjs +18 -7
- package/tests/Order/Aggregate/OrderMappings_GWT.res +6 -4
- package/tests/Order/Aggregate/OrderMappings_GWT.res.mjs +19 -11
- package/tests/Order/Aggregate/Order_GWT.res +29 -24
- package/tests/Order/Aggregate/Order_GWT.res.mjs +55 -44
- package/tests/Order/ReadModel/Orders_GWT.res +19 -14
- package/tests/Order/ReadModel/Orders_GWT.res.mjs +31 -20
- package/tests/Order/SideEffect/Order_EmailNotification_GWT.res +5 -2
- package/tests/Order/SideEffect/Order_EmailNotification_GWT.res.mjs +8 -6
|
@@ -12,11 +12,15 @@ module Mapping = {
|
|
|
12
12
|
|
|
13
13
|
let mapIncomingEvent = (_id, event, _meta, _pluginDef, _queryEngine) =>
|
|
14
14
|
switch event {
|
|
15
|
+
// The contract carries the catalog's typed id; routing is by string.
|
|
15
16
|
| ProductBecameAvailable({productId, name, price}) => [
|
|
16
|
-
PublishAggregateCommand(productId, Sync({name, price})),
|
|
17
|
+
PublishAggregateCommand(productId->CatalogSpec.ProductId.toString, Sync({name, price})),
|
|
17
18
|
]
|
|
18
19
|
| ProductPriceChanged({productId, price}) => [
|
|
19
|
-
PublishAggregateCommand(
|
|
20
|
+
PublishAggregateCommand(
|
|
21
|
+
productId->CatalogSpec.ProductId.toString,
|
|
22
|
+
UpdatePrice({price: price}),
|
|
23
|
+
),
|
|
20
24
|
]
|
|
21
25
|
}
|
|
22
26
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -6,16 +6,18 @@
|
|
|
6
6
|
// it surfaces the extension point's events and the delegate's commands.
|
|
7
7
|
open Mapping
|
|
8
8
|
|
|
9
|
+
let p1 = CatalogSpec.ProductId.make("p1")
|
|
10
|
+
|
|
9
11
|
describe("Products Extension delegate", () => {
|
|
10
12
|
test("ProductBecameAvailable issues Sync", () =>
|
|
11
13
|
whenIncomingEvent(
|
|
12
|
-
ExtensionPoint.ProductBecameAvailable({productId:
|
|
14
|
+
ExtensionPoint.ProductBecameAvailable({productId: p1, name: "Book", price: 9.99}),
|
|
13
15
|
)->thenPublishesAggregateCommand("p1", Delegate.Sync({name: "Book", price: 9.99}))
|
|
14
16
|
)
|
|
15
17
|
|
|
16
18
|
test("ProductPriceChanged issues UpdatePrice", () =>
|
|
17
19
|
whenIncomingEvent(
|
|
18
|
-
ExtensionPoint.ProductPriceChanged({productId:
|
|
20
|
+
ExtensionPoint.ProductPriceChanged({productId: p1, price: 7.5}),
|
|
19
21
|
)->thenPublishesAggregateCommand("p1", Delegate.UpdatePrice({price: 7.5}))
|
|
20
22
|
)
|
|
21
23
|
})
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reventlessdev/online-shop-aggregates-ordering",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.246",
|
|
4
4
|
"description": "Online Shop example — Ordering plugin (Customer & Order aggregates)",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"jest": {
|
|
@@ -21,18 +21,18 @@
|
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"sury": "11.0.0-rc.2",
|
|
24
|
-
"@reventlessdev/online-shop-aggregates-catalog-spec": "3.0.0-alpha.
|
|
24
|
+
"@reventlessdev/online-shop-aggregates-catalog-spec": "3.0.0-alpha.139",
|
|
25
25
|
"@reventlessdev/rescript-pulumi-pulumi": "2.3.0-alpha.21",
|
|
26
|
-
"@reventlessdev/
|
|
27
|
-
"@reventlessdev/
|
|
28
|
-
"@reventlessdev/reventless-
|
|
29
|
-
"@reventlessdev/reventless-
|
|
30
|
-
"@reventlessdev/reventless-
|
|
26
|
+
"@reventlessdev/reventless-gwt": "1.0.0-alpha.214",
|
|
27
|
+
"@reventlessdev/online-shop-aggregates-ordering-spec": "3.0.0-alpha.139",
|
|
28
|
+
"@reventlessdev/reventless-infra": "3.0.0-alpha.168",
|
|
29
|
+
"@reventlessdev/reventless-local": "3.0.0-alpha.257",
|
|
30
|
+
"@reventlessdev/reventless-spec": "3.0.0-alpha.140"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"rescript": "12.3.0",
|
|
34
34
|
"sury-ppx": "11.0.0-rc.2",
|
|
35
|
-
"@reventlessdev/reventless-ppx": "1.0.0-alpha.
|
|
35
|
+
"@reventlessdev/reventless-ppx": "1.0.0-alpha.81"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"rescript": "12.3.0"
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
|
-
import * as
|
|
3
|
+
import * as ProductId$CatalogSpec from "@reventlessdev/online-shop-aggregates-catalog-spec/src/ProductId.res.mjs";
|
|
4
4
|
import * as Projection$Reventless from "@reventlessdev/reventless-spec/src/types/Projection.res.mjs";
|
|
5
5
|
import * as CatalogProduct$OrderingPlugin from "../Aggregate/CatalogProduct.res.mjs";
|
|
6
6
|
import * as AvailableProducts$OrderingPlugin from "./AvailableProducts.res.mjs";
|
|
7
7
|
|
|
8
8
|
let M = Projection$Reventless.Mappings.Make({
|
|
9
|
-
Id:
|
|
9
|
+
Id: ProductId$CatalogSpec,
|
|
10
10
|
name: AvailableProducts$OrderingPlugin.name,
|
|
11
11
|
stateSchema: AvailableProducts$OrderingPlugin.stateSchema,
|
|
12
12
|
subIdConfig: undefined
|
|
@@ -37,11 +37,11 @@ function project(param) {
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
let CatalogProductMapping = Projection$Reventless.Mapping.Make({
|
|
40
|
-
Id:
|
|
40
|
+
Id: ProductId$CatalogSpec,
|
|
41
41
|
name: CatalogProduct$OrderingPlugin.name,
|
|
42
42
|
eventSchema: CatalogProduct$OrderingPlugin.eventSchema
|
|
43
43
|
})({
|
|
44
|
-
Id:
|
|
44
|
+
Id: ProductId$CatalogSpec,
|
|
45
45
|
name: AvailableProducts$OrderingPlugin.name,
|
|
46
46
|
stateSchema: AvailableProducts$OrderingPlugin.stateSchema,
|
|
47
47
|
subIdConfig: undefined
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
|
|
4
4
|
@@reventless.spec
|
|
5
5
|
|
|
6
|
+
module Id = CustomerId
|
|
7
|
+
|
|
6
8
|
// The command is where an address is first accepted, so it is where the type
|
|
7
9
|
// belongs — a value that reaches the log is already permanent. The events below
|
|
8
10
|
// stay plain `string`: they record what was accepted, and re-validating history
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
|
+
|
|
3
|
+
import * as Id$Reventless from "@reventlessdev/reventless-spec/src/types/Id.res.mjs";
|
|
4
|
+
|
|
5
|
+
let include = Id$Reventless.Make({
|
|
6
|
+
key: "customerId"
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
let schema = include.schema;
|
|
10
|
+
|
|
11
|
+
let make = include.make;
|
|
12
|
+
|
|
13
|
+
let makeFromString = include.makeFromString;
|
|
14
|
+
|
|
15
|
+
let toString = include.toString;
|
|
16
|
+
|
|
17
|
+
let cmp = include.cmp;
|
|
18
|
+
|
|
19
|
+
let key = include.key;
|
|
20
|
+
|
|
21
|
+
export {
|
|
22
|
+
schema,
|
|
23
|
+
make,
|
|
24
|
+
makeFromString,
|
|
25
|
+
toString,
|
|
26
|
+
cmp,
|
|
27
|
+
key,
|
|
28
|
+
}
|
|
29
|
+
/* include Not a pure module */
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
|
-
import * as Id$Reventless from "@reventlessdev/reventless-spec/src/types/Id.res.mjs";
|
|
4
3
|
import * as Projection$Reventless from "@reventlessdev/reventless-spec/src/types/Projection.res.mjs";
|
|
5
4
|
import * as Customer$OrderingPlugin from "../Aggregate/Customer.res.mjs";
|
|
6
5
|
import * as Customers$OrderingPlugin from "./Customers.res.mjs";
|
|
6
|
+
import * as CustomerId$OrderingPlugin from "../CustomerId.res.mjs";
|
|
7
7
|
|
|
8
8
|
let M = Projection$Reventless.Mappings.Make({
|
|
9
|
-
Id:
|
|
9
|
+
Id: CustomerId$OrderingPlugin,
|
|
10
10
|
name: Customers$OrderingPlugin.name,
|
|
11
11
|
stateSchema: Customers$OrderingPlugin.stateSchema,
|
|
12
12
|
subIdConfig: undefined
|
|
@@ -63,11 +63,11 @@ function project(param) {
|
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
let CustomerMapping = Projection$Reventless.Mapping.Make({
|
|
66
|
-
Id:
|
|
66
|
+
Id: CustomerId$OrderingPlugin,
|
|
67
67
|
name: Customer$OrderingPlugin.name,
|
|
68
68
|
eventSchema: Customer$OrderingPlugin.eventSchema
|
|
69
69
|
})({
|
|
70
|
-
Id:
|
|
70
|
+
Id: CustomerId$OrderingPlugin,
|
|
71
71
|
name: Customers$OrderingPlugin.name,
|
|
72
72
|
stateSchema: Customers$OrderingPlugin.stateSchema,
|
|
73
73
|
subIdConfig: undefined
|
|
@@ -12,11 +12,15 @@ module Mapping = {
|
|
|
12
12
|
|
|
13
13
|
let mapIncomingEvent = (_id, event, _meta, _pluginDef, _queryEngine) =>
|
|
14
14
|
switch event {
|
|
15
|
+
// The contract carries the catalog's typed id; routing is by string.
|
|
15
16
|
| ProductBecameAvailable({productId, name, price}) => [
|
|
16
|
-
PublishAggregateCommand(productId, Sync({name, price})),
|
|
17
|
+
PublishAggregateCommand(productId->CatalogSpec.ProductId.toString, Sync({name, price})),
|
|
17
18
|
]
|
|
18
19
|
| ProductPriceChanged({productId, price}) => [
|
|
19
|
-
PublishAggregateCommand(
|
|
20
|
+
PublishAggregateCommand(
|
|
21
|
+
productId->CatalogSpec.ProductId.toString,
|
|
22
|
+
UpdatePrice({price: price}),
|
|
23
|
+
),
|
|
20
24
|
]
|
|
21
25
|
}
|
|
22
26
|
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
|
+
import * as ProductId$CatalogSpec from "@reventlessdev/online-shop-aggregates-catalog-spec/src/ProductId.res.mjs";
|
|
3
4
|
import * as CatalogProduct$OrderingPlugin from "../CatalogProduct/Aggregate/CatalogProduct.res.mjs";
|
|
4
5
|
|
|
5
6
|
function mapIncomingEvent(_id, event, _meta, _pluginDef, _queryEngine) {
|
|
6
7
|
if (event.TAG === "ProductBecameAvailable") {
|
|
7
8
|
return [{
|
|
8
9
|
TAG: "PublishAggregateCommand",
|
|
9
|
-
_0: event.productId,
|
|
10
|
+
_0: ProductId$CatalogSpec.toString(event.productId),
|
|
10
11
|
_1: {
|
|
11
12
|
TAG: "Sync",
|
|
12
13
|
name: event.name,
|
|
@@ -16,7 +17,7 @@ function mapIncomingEvent(_id, event, _meta, _pluginDef, _queryEngine) {
|
|
|
16
17
|
} else {
|
|
17
18
|
return [{
|
|
18
19
|
TAG: "PublishAggregateCommand",
|
|
19
|
-
_0: event.productId,
|
|
20
|
+
_0: ProductId$CatalogSpec.toString(event.productId),
|
|
20
21
|
_1: {
|
|
21
22
|
TAG: "UpdatePrice",
|
|
22
23
|
price: event.price
|
|
@@ -55,4 +56,4 @@ export {
|
|
|
55
56
|
Mapping,
|
|
56
57
|
moduleUrl,
|
|
57
58
|
}
|
|
58
|
-
/*
|
|
59
|
+
/* ProductId-CatalogSpec Not a pure module */
|
|
@@ -10,16 +10,31 @@ let mapIncomingCommand = (_id, _command, _meta) => []
|
|
|
10
10
|
let mapOutgoingEvent = Some(
|
|
11
11
|
(_id, event, _meta, _queryEngine) =>
|
|
12
12
|
switch event {
|
|
13
|
+
// The published contract carries plain strings: a consumer outside this
|
|
14
|
+
// plugin has no OrderId or CustomerId type to hold them in.
|
|
13
15
|
| Order.Placed({customerId, productIds}) =>
|
|
14
|
-
productIds->Array.map(productId =>
|
|
15
|
-
productId
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
productIds->Array.map(productId => {
|
|
17
|
+
let productId = productId->CatalogSpec.ProductId.toString
|
|
18
|
+
PublishEvent(
|
|
19
|
+
productId,
|
|
20
|
+
OrderingSpec.Orders_ExtensionPoint.ItemOrdered({
|
|
21
|
+
productId,
|
|
22
|
+
orderId: _id,
|
|
23
|
+
customerId: customerId->CustomerId.toString,
|
|
24
|
+
}),
|
|
25
|
+
)
|
|
26
|
+
})
|
|
18
27
|
| Order.Cancelled({productIds}) =>
|
|
19
|
-
productIds->Array.map(productId =>
|
|
20
|
-
productId
|
|
21
|
-
|
|
22
|
-
|
|
28
|
+
productIds->Array.map(productId => {
|
|
29
|
+
let productId = productId->CatalogSpec.ProductId.toString
|
|
30
|
+
PublishEvent(
|
|
31
|
+
productId,
|
|
32
|
+
OrderingSpec.Orders_ExtensionPoint.ItemOrderCancelled({
|
|
33
|
+
productId,
|
|
34
|
+
orderId: _id,
|
|
35
|
+
}),
|
|
36
|
+
)
|
|
37
|
+
})
|
|
23
38
|
| _ => []
|
|
24
39
|
},
|
|
25
40
|
)
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
|
+
import * as ProductId$CatalogSpec from "@reventlessdev/online-shop-aggregates-catalog-spec/src/ProductId.res.mjs";
|
|
4
|
+
import * as CustomerId$OrderingPlugin from "../Customer/CustomerId.res.mjs";
|
|
3
5
|
|
|
4
6
|
function mapIncomingCommand(_id, _command, _meta) {
|
|
5
7
|
return [];
|
|
@@ -12,26 +14,32 @@ let mapOutgoingEvent = (_id, event, _meta, _queryEngine) => {
|
|
|
12
14
|
switch (event.TAG) {
|
|
13
15
|
case "Placed" :
|
|
14
16
|
let customerId = event.customerId;
|
|
15
|
-
return event.productIds.map(productId =>
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
17
|
+
return event.productIds.map(productId => {
|
|
18
|
+
let productId$1 = ProductId$CatalogSpec.toString(productId);
|
|
19
|
+
return {
|
|
20
|
+
TAG: "PublishEvent",
|
|
21
|
+
_0: productId$1,
|
|
22
|
+
_1: {
|
|
23
|
+
TAG: "ItemOrdered",
|
|
24
|
+
productId: productId$1,
|
|
25
|
+
orderId: _id,
|
|
26
|
+
customerId: CustomerId$OrderingPlugin.toString(customerId)
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
});
|
|
25
30
|
case "Cancelled" :
|
|
26
|
-
return event.productIds.map(productId =>
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
return event.productIds.map(productId => {
|
|
32
|
+
let productId$1 = ProductId$CatalogSpec.toString(productId);
|
|
33
|
+
return {
|
|
34
|
+
TAG: "PublishEvent",
|
|
35
|
+
_0: productId$1,
|
|
36
|
+
_1: {
|
|
37
|
+
TAG: "ItemOrderCancelled",
|
|
38
|
+
productId: productId$1,
|
|
39
|
+
orderId: _id
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
});
|
|
35
43
|
case "Refunded" :
|
|
36
44
|
return [];
|
|
37
45
|
}
|
|
@@ -71,4 +79,4 @@ export {
|
|
|
71
79
|
publishedEvents,
|
|
72
80
|
acceptedCommands,
|
|
73
81
|
}
|
|
74
|
-
/*
|
|
82
|
+
/* ProductId-CatalogSpec Not a pure module */
|
|
@@ -3,18 +3,22 @@
|
|
|
3
3
|
|
|
4
4
|
@@reventless.spec
|
|
5
5
|
|
|
6
|
+
module Id = OrderId
|
|
7
|
+
|
|
6
8
|
@schema
|
|
7
9
|
type command =
|
|
8
|
-
|
|
10
|
+
// Both references are derived from the types: AvailableProducts is the one view
|
|
11
|
+
// here keyed by ProductId, and Customers the one keyed by CustomerId.
|
|
12
|
+
| Place({customerId: CustomerId.t, productIds: array<CatalogSpec.ProductId.t>})
|
|
9
13
|
| Ship
|
|
10
14
|
| Cancel
|
|
11
15
|
| Refund({reason: string})
|
|
12
16
|
|
|
13
17
|
@schema
|
|
14
18
|
type event =
|
|
15
|
-
| Placed({customerId:
|
|
19
|
+
| Placed({customerId: CustomerId.t, productIds: array<CatalogSpec.ProductId.t>})
|
|
16
20
|
| Shipped
|
|
17
|
-
| Cancelled({productIds: array<
|
|
21
|
+
| Cancelled({productIds: array<CatalogSpec.ProductId.t>})
|
|
18
22
|
| Refunded({reason: string})
|
|
19
23
|
|
|
20
24
|
@schema
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
3
|
import * as Sury from "sury";
|
|
4
|
-
import * as
|
|
4
|
+
import * as ProductId$CatalogSpec from "@reventlessdev/online-shop-aggregates-catalog-spec/src/ProductId.res.mjs";
|
|
5
|
+
import * as CustomerId$OrderingPlugin from "../../Customer/CustomerId.res.mjs";
|
|
5
6
|
|
|
6
7
|
let commandSchema = Sury.union([
|
|
7
8
|
Sury.$schema(s => ({
|
|
8
9
|
TAG: "Place",
|
|
9
|
-
customerId: s.m(
|
|
10
|
-
productIds: s.m(Sury.array(
|
|
10
|
+
customerId: s.m(CustomerId$OrderingPlugin.schema),
|
|
11
|
+
productIds: s.m(Sury.array(ProductId$CatalogSpec.schema))
|
|
11
12
|
})),
|
|
12
13
|
Sury.literal("Ship"),
|
|
13
14
|
Sury.literal("Cancel"),
|
|
@@ -20,13 +21,13 @@ let commandSchema = Sury.union([
|
|
|
20
21
|
let eventSchema = Sury.union([
|
|
21
22
|
Sury.$schema(s => ({
|
|
22
23
|
TAG: "Placed",
|
|
23
|
-
customerId: s.m(
|
|
24
|
-
productIds: s.m(Sury.array(
|
|
24
|
+
customerId: s.m(CustomerId$OrderingPlugin.schema),
|
|
25
|
+
productIds: s.m(Sury.array(ProductId$CatalogSpec.schema))
|
|
25
26
|
})),
|
|
26
27
|
Sury.literal("Shipped"),
|
|
27
28
|
Sury.$schema(s => ({
|
|
28
29
|
TAG: "Cancelled",
|
|
29
|
-
productIds: s.m(Sury.array(
|
|
30
|
+
productIds: s.m(Sury.array(ProductId$CatalogSpec.schema))
|
|
30
31
|
})),
|
|
31
32
|
Sury.$schema(s => ({
|
|
32
33
|
TAG: "Refunded",
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
3
|
import * as Sury from "sury";
|
|
4
|
+
import * as ProductId$CatalogSpec from "@reventlessdev/online-shop-aggregates-catalog-spec/src/ProductId.res.mjs";
|
|
5
|
+
import * as CustomerId$OrderingPlugin from "../../Customer/CustomerId.res.mjs";
|
|
4
6
|
|
|
5
7
|
let stateSchema = Sury.union([
|
|
6
8
|
Sury.literal("NotCreated"),
|
|
7
9
|
Sury.$schema(s => ({
|
|
8
10
|
TAG: "Placed",
|
|
9
|
-
customerId: s.m(
|
|
10
|
-
productIds: s.m(Sury.array(
|
|
11
|
+
customerId: s.m(CustomerId$OrderingPlugin.schema),
|
|
12
|
+
productIds: s.m(Sury.array(ProductId$CatalogSpec.schema))
|
|
11
13
|
})),
|
|
12
14
|
Sury.literal("Shipped"),
|
|
13
15
|
Sury.literal("Cancelled"),
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
|
-
import * as Id$Reventless from "@reventlessdev/reventless-spec/src/types/Id.res.mjs";
|
|
4
3
|
import * as Order$OrderingPlugin from "./Order.res.mjs";
|
|
4
|
+
import * as OrderId$OrderingPlugin from "../OrderId.res.mjs";
|
|
5
5
|
import * as EventMapping$Reventless from "@reventlessdev/reventless-spec/src/types/EventMapping.res.mjs";
|
|
6
6
|
|
|
7
7
|
let M = EventMapping$Reventless.Mappings.Make({
|
|
8
8
|
name: Order$OrderingPlugin.name,
|
|
9
|
-
Id:
|
|
9
|
+
Id: OrderId$OrderingPlugin,
|
|
10
10
|
commandSchema: Order$OrderingPlugin.commandSchema
|
|
11
11
|
});
|
|
12
12
|
|
|
@@ -32,7 +32,7 @@ let AutoShipMapping = {
|
|
|
32
32
|
let mappings = [{
|
|
33
33
|
Source: {
|
|
34
34
|
name: Order$OrderingPlugin.name,
|
|
35
|
-
Id:
|
|
35
|
+
Id: OrderId$OrderingPlugin,
|
|
36
36
|
eventSchema: Order$OrderingPlugin.eventSchema
|
|
37
37
|
},
|
|
38
38
|
map: map
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
|
+
|
|
3
|
+
import * as Id$Reventless from "@reventlessdev/reventless-spec/src/types/Id.res.mjs";
|
|
4
|
+
|
|
5
|
+
let include = Id$Reventless.Make({
|
|
6
|
+
key: "orderId"
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
let schema = include.schema;
|
|
10
|
+
|
|
11
|
+
let make = include.make;
|
|
12
|
+
|
|
13
|
+
let makeFromString = include.makeFromString;
|
|
14
|
+
|
|
15
|
+
let toString = include.toString;
|
|
16
|
+
|
|
17
|
+
let cmp = include.cmp;
|
|
18
|
+
|
|
19
|
+
let key = include.key;
|
|
20
|
+
|
|
21
|
+
export {
|
|
22
|
+
schema,
|
|
23
|
+
make,
|
|
24
|
+
makeFromString,
|
|
25
|
+
toString,
|
|
26
|
+
cmp,
|
|
27
|
+
key,
|
|
28
|
+
}
|
|
29
|
+
/* include Not a pure module */
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
|
|
4
4
|
@@reventless.spec
|
|
5
5
|
|
|
6
|
+
module Id = OrderId
|
|
7
|
+
|
|
6
8
|
@schema
|
|
7
9
|
type lifecycle =
|
|
8
10
|
| Placed
|
|
@@ -12,8 +14,8 @@ type lifecycle =
|
|
|
12
14
|
|
|
13
15
|
@schema
|
|
14
16
|
type state = {
|
|
15
|
-
customerId:
|
|
16
|
-
productIds: array<
|
|
17
|
+
customerId: CustomerId.t,
|
|
18
|
+
productIds: array<CatalogSpec.ProductId.t>,
|
|
17
19
|
// No annotation: the field name is the declaration. `@lifecycle` exists for
|
|
18
20
|
// records whose lifecycle field is honestly called something else.
|
|
19
21
|
lifecycle: lifecycle,
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
import * as Sury from "sury";
|
|
4
4
|
import * as ReadModel$Reventless from "@reventlessdev/reventless-spec/src/components/ReadModel.res.mjs";
|
|
5
|
+
import * as ProductId$CatalogSpec from "@reventlessdev/online-shop-aggregates-catalog-spec/src/ProductId.res.mjs";
|
|
6
|
+
import * as CustomerId$OrderingPlugin from "../../Customer/CustomerId.res.mjs";
|
|
5
7
|
|
|
6
8
|
let lifecycleSchema = Sury.union([
|
|
7
9
|
Sury.literal("Placed"),
|
|
@@ -11,8 +13,8 @@ let lifecycleSchema = Sury.union([
|
|
|
11
13
|
]);
|
|
12
14
|
|
|
13
15
|
let stateSchema = Sury.$schema(s => ({
|
|
14
|
-
customerId: s.m(
|
|
15
|
-
productIds: s.m(Sury.array(
|
|
16
|
+
customerId: s.m(CustomerId$OrderingPlugin.schema),
|
|
17
|
+
productIds: s.m(Sury.array(ProductId$CatalogSpec.schema)),
|
|
16
18
|
lifecycle: s.m(lifecycleSchema)
|
|
17
19
|
}));
|
|
18
20
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
|
-
import * as Id$Reventless from "@reventlessdev/reventless-spec/src/types/Id.res.mjs";
|
|
4
3
|
import * as Order$OrderingPlugin from "../Aggregate/Order.res.mjs";
|
|
5
4
|
import * as Orders$OrderingPlugin from "./Orders.res.mjs";
|
|
6
5
|
import * as Projection$Reventless from "@reventlessdev/reventless-spec/src/types/Projection.res.mjs";
|
|
6
|
+
import * as OrderId$OrderingPlugin from "../OrderId.res.mjs";
|
|
7
7
|
|
|
8
8
|
let M = Projection$Reventless.Mappings.Make({
|
|
9
|
-
Id:
|
|
9
|
+
Id: OrderId$OrderingPlugin,
|
|
10
10
|
name: Orders$OrderingPlugin.name,
|
|
11
11
|
stateSchema: Orders$OrderingPlugin.stateSchema,
|
|
12
12
|
subIdConfig: undefined
|
|
@@ -61,11 +61,11 @@ function project(param) {
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
let OrderMapping = Projection$Reventless.Mapping.Make({
|
|
64
|
-
Id:
|
|
64
|
+
Id: OrderId$OrderingPlugin,
|
|
65
65
|
name: Order$OrderingPlugin.name,
|
|
66
66
|
eventSchema: Order$OrderingPlugin.eventSchema
|
|
67
67
|
})({
|
|
68
|
-
Id:
|
|
68
|
+
Id: OrderId$OrderingPlugin,
|
|
69
69
|
name: Orders$OrderingPlugin.name,
|
|
70
70
|
stateSchema: Orders$OrderingPlugin.stateSchema,
|
|
71
71
|
subIdConfig: undefined
|
|
@@ -10,6 +10,9 @@ module Source = {
|
|
|
10
10
|
let execute = async (orderId, _meta, event, _queryEngine) =>
|
|
11
11
|
switch event {
|
|
12
12
|
| Order.Placed({customerId}) =>
|
|
13
|
-
await EmailService.sendOrderConfirmation(
|
|
13
|
+
await EmailService.sendOrderConfirmation(
|
|
14
|
+
~email=customerId->CustomerId.toString,
|
|
15
|
+
~orderId=orderId->Order.Id.toString,
|
|
16
|
+
)
|
|
14
17
|
| _ => ()
|
|
15
18
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// Generated by ReScript, PLEASE EDIT WITH CARE
|
|
2
2
|
|
|
3
|
-
import * as Id$Reventless from "@reventlessdev/reventless-spec/src/types/Id.res.mjs";
|
|
4
3
|
import * as Order$OrderingPlugin from "../Aggregate/Order.res.mjs";
|
|
4
|
+
import * as OrderId$OrderingPlugin from "../OrderId.res.mjs";
|
|
5
|
+
import * as CustomerId$OrderingPlugin from "../../Customer/CustomerId.res.mjs";
|
|
5
6
|
import * as EmailService$OrderingPlugin from "../../Service/EmailService.res.mjs";
|
|
6
7
|
|
|
7
8
|
let Source = {
|
|
@@ -14,7 +15,7 @@ async function execute(orderId, _meta, event, _queryEngine) {
|
|
|
14
15
|
if (typeof event !== "object" || event.TAG !== "Placed") {
|
|
15
16
|
return;
|
|
16
17
|
} else {
|
|
17
|
-
return await EmailService$OrderingPlugin.sendOrderConfirmation(event.customerId,
|
|
18
|
+
return await EmailService$OrderingPlugin.sendOrderConfirmation(CustomerId$OrderingPlugin.toString(event.customerId), OrderId$OrderingPlugin.toString(orderId));
|
|
18
19
|
}
|
|
19
20
|
}
|
|
20
21
|
|
|
@@ -31,4 +32,4 @@ export {
|
|
|
31
32
|
execute,
|
|
32
33
|
moduleUrl,
|
|
33
34
|
}
|
|
34
|
-
/*
|
|
35
|
+
/* Order-OrderingPlugin Not a pure module */
|