chore(product): Update the events emitted from the product module (#9557)

This commit is contained in:
Adrien de Peretti
2024-10-14 09:19:32 -03:00
committed by GitHub
parent b40fa6353e
commit d8b7f90689
6 changed files with 117 additions and 127 deletions
@@ -39,10 +39,6 @@ import {
toHandle,
} from "@medusajs/framework/utils"
import {
ProductCollectionEventData,
ProductCollectionEvents,
ProductEventData,
ProductEvents,
UpdateCategoryInput,
UpdateCollectionInput,
UpdateProductInput,
@@ -859,6 +855,7 @@ export default class ProductModuleService
): Promise<ProductTypes.ProductCollectionDTO>
@InjectManager()
@EmitEvents()
async createProductCollections(
data:
| ProductTypes.CreateProductCollectionDTO[]
@@ -875,15 +872,10 @@ export default class ProductModuleService
ProductTypes.ProductCollectionDTO[]
>(collections)
await this.eventBusModuleService_?.emit<ProductCollectionEventData>(
collections.map(({ id }) => ({
name: ProductCollectionEvents.COLLECTION_CREATED,
data: { id },
})),
{
internal: true,
}
)
eventBuilders.createdProductCollection({
data: collections,
sharedContext,
})
return Array.isArray(data) ? createdCollections : createdCollections[0]
}
@@ -917,7 +909,9 @@ export default class ProductModuleService
data: ProductTypes.UpsertProductCollectionDTO,
sharedContext?: Context
): Promise<ProductTypes.ProductCollectionDTO>
@InjectTransactionManager()
@EmitEvents()
async upsertProductCollections(
data:
| ProductTypes.UpsertProductCollectionDTO[]
@@ -951,27 +945,17 @@ export default class ProductModuleService
>(result)
if (created.length) {
await this.eventBusModuleService_?.emit<ProductCollectionEventData>(
created.map(({ id }) => ({
name: ProductCollectionEvents.COLLECTION_CREATED,
data: { id },
})),
{
internal: true,
}
)
eventBuilders.createdProductCollection({
data: created,
sharedContext,
})
}
if (updated.length) {
await this.eventBusModuleService_?.emit<ProductCollectionEventData>(
updated.map(({ id }) => ({
name: ProductCollectionEvents.COLLECTION_UPDATED,
data: { id },
})),
{
internal: true,
}
)
eventBuilders.updatedProductCollection({
data: updated,
sharedContext,
})
}
return Array.isArray(data) ? allCollections : allCollections[0]
@@ -990,6 +974,7 @@ export default class ProductModuleService
): Promise<ProductTypes.ProductCollectionDTO[]>
@InjectManager()
@EmitEvents()
async updateProductCollections(
idOrSelector: string | ProductTypes.FilterableProductCollectionProps,
data: ProductTypes.UpdateProductCollectionDTO,
@@ -1027,15 +1012,10 @@ export default class ProductModuleService
ProductTypes.ProductCollectionDTO[]
>(collections)
await this.eventBusModuleService_?.emit<ProductCollectionEventData>(
updatedCollections.map(({ id }) => ({
name: ProductCollectionEvents.COLLECTION_UPDATED,
data: { id },
})),
{
internal: true,
}
)
eventBuilders.updatedProductCollection({
data: updatedCollections,
sharedContext,
})
return isString(idOrSelector) ? updatedCollections[0] : updatedCollections
}
@@ -1282,6 +1262,7 @@ export default class ProductModuleService
): Promise<ProductTypes.ProductDTO>
@InjectManager()
@EmitEvents()
async createProducts(
data: ProductTypes.CreateProductDTO[] | ProductTypes.CreateProductDTO,
@MedusaContext() sharedContext: Context = {}
@@ -1293,15 +1274,10 @@ export default class ProductModuleService
ProductTypes.ProductDTO[]
>(products)
await this.eventBusModuleService_?.emit<ProductEventData>(
createdProducts.map(({ id }) => ({
name: ProductEvents.PRODUCT_CREATED,
data: { id },
})),
{
internal: true,
}
)
eventBuilders.createdProduct({
data: createdProducts,
sharedContext,
})
return Array.isArray(data) ? createdProducts : createdProducts[0]
}
@@ -1316,6 +1292,7 @@ export default class ProductModuleService
): Promise<ProductTypes.ProductDTO>
@InjectTransactionManager()
@EmitEvents()
async upsertProducts(
data: ProductTypes.UpsertProductDTO[] | ProductTypes.UpsertProductDTO,
@MedusaContext() sharedContext: Context = {}
@@ -1344,27 +1321,17 @@ export default class ProductModuleService
>(result)
if (created.length) {
await this.eventBusModuleService_?.emit<ProductEventData>(
created.map(({ id }) => ({
name: ProductEvents.PRODUCT_CREATED,
data: { id },
})),
{
internal: true,
}
)
eventBuilders.createdProduct({
data: created,
sharedContext,
})
}
if (updated.length) {
await this.eventBusModuleService_?.emit<ProductEventData>(
updated.map(({ id }) => ({
name: ProductEvents.PRODUCT_UPDATED,
data: { id },
})),
{
internal: true,
}
)
eventBuilders.updatedProduct({
data: updated,
sharedContext,
})
}
return Array.isArray(data) ? allProducts : allProducts[0]
@@ -1383,6 +1350,7 @@ export default class ProductModuleService
): Promise<ProductTypes.ProductDTO[]>
@InjectManager()
@EmitEvents()
async updateProducts(
idOrSelector: string | ProductTypes.FilterableProductProps,
data: ProductTypes.UpdateProductDTO,
@@ -1413,15 +1381,10 @@ export default class ProductModuleService
ProductTypes.ProductDTO[]
>(products)
await this.eventBusModuleService_?.emit<ProductEventData>(
updatedProducts.map(({ id }) => ({
name: ProductEvents.PRODUCT_UPDATED,
data: { id },
})),
{
internal: true,
}
)
eventBuilders.updatedProduct({
data: updatedProducts,
sharedContext,
})
return isString(idOrSelector) ? updatedProducts[0] : updatedProducts
}