feat: emit product tags events (#7636)

**What**
emit product tags events

**note**
Stil does not take into consideration non overriden method, delete and soft delete emits event under the hood and we will have to migrate that at the end
This commit is contained in:
Adrien de Peretti
2024-06-06 15:14:40 +00:00
committed by GitHub
parent 3f62bfad5a
commit 9576de2be4
2 changed files with 122 additions and 3 deletions
@@ -422,6 +422,7 @@ export default class ProductModuleService<
): Promise<ProductTypes.ProductTagDTO>
@InjectManager("baseRepository_")
@EmitEvents()
async createTags(
data: ProductTypes.CreateProductTagDTO[] | ProductTypes.CreateProductTagDTO,
@MedusaContext() sharedContext: Context = {}
@@ -434,6 +435,11 @@ export default class ProductModuleService<
ProductTypes.ProductTagDTO[]
>(tags)
eventBuilders.createdProductTag({
data: createdTags,
sharedContext,
})
return Array.isArray(data) ? createdTags : createdTags[0]
}
@@ -447,6 +453,7 @@ export default class ProductModuleService<
): Promise<ProductTypes.ProductTagDTO>
@InjectTransactionManager("baseRepository_")
@EmitEvents()
async upsertTags(
data: ProductTypes.UpsertProductTagDTO[] | ProductTypes.UpsertProductTagDTO,
@MedusaContext() sharedContext: Context = {}
@@ -462,9 +469,17 @@ export default class ProductModuleService<
if (forCreate.length) {
created = await this.productTagService_.create(forCreate, sharedContext)
eventBuilders.createdProductTag({
data: created,
sharedContext,
})
}
if (forUpdate.length) {
updated = await this.productTagService_.update(forUpdate, sharedContext)
eventBuilders.updatedProductTag({
data: updated,
sharedContext,
})
}
const result = [...created, ...updated]
@@ -487,6 +502,7 @@ export default class ProductModuleService<
): Promise<ProductTypes.ProductTagDTO[]>
@InjectManager("baseRepository_")
@EmitEvents()
async updateTags(
idOrSelector: string | ProductTypes.FilterableProductTagProps,
data: ProductTypes.UpdateProductTagDTO,
@@ -519,6 +535,11 @@ export default class ProductModuleService<
ProductTypes.ProductTagDTO[]
>(tags)
eventBuilders.updatedProductTag({
data: updatedTags,
sharedContext,
})
return isString(idOrSelector) ? updatedTags[0] : updatedTags
}