feat(workflows): update product workflow (#4982)

**What**
- added "update product" workflow

Co-authored-by: Riqwan Thamir <5105988+riqwan@users.noreply.github.com>
This commit is contained in:
Frane Polić
2023-10-19 12:02:40 +00:00
committed by GitHub
co-authored by Riqwan Thamir
parent 3aba6269ed
commit aba9ded2a3
34 changed files with 1511 additions and 126 deletions
@@ -998,7 +998,7 @@ export default class ProductModuleService<
if (productVariantIdsToDelete.length) {
promises.push(
this.productVariantService_.delete(
this.productVariantService_.softDelete(
productVariantIdsToDelete,
sharedContext
)
@@ -1152,6 +1152,33 @@ export default class ProductModuleService<
return mappedCascadedEntitiesMap ? mappedCascadedEntitiesMap : void 0
}
@InjectManager("baseRepository_")
async restoreVariants<
TReturnableLinkableKeys extends string = Lowercase<
keyof typeof LinkableKeys
>
>(
variantIds: string[],
{ returnLinkableKeys }: RestoreReturn<TReturnableLinkableKeys> = {},
@MedusaContext() sharedContext: Context = {}
): Promise<Record<Lowercase<keyof typeof LinkableKeys>, string[]> | void> {
const [_, cascadedEntitiesMap] = await this.productVariantService_.restore(
variantIds,
sharedContext
)
let mappedCascadedEntitiesMap
if (returnLinkableKeys) {
mappedCascadedEntitiesMap = mapObjectTo<
Record<Lowercase<keyof typeof LinkableKeys>, string[]>
>(cascadedEntitiesMap, entityNameToLinkableKeysMap, {
pick: returnLinkableKeys,
})
}
return mappedCascadedEntitiesMap ? mappedCascadedEntitiesMap : void 0
}
@InjectTransactionManager(shouldForceTransaction, "baseRepository_")
async restore_(
productIds: string[],
@@ -154,4 +154,24 @@ export default class ProductVariantService<
transactionManager: sharedContext.transactionManager,
})
}
@InjectTransactionManager(doNotForceTransaction, "productVariantRepository_")
async softDelete(
ids: string[],
@MedusaContext() sharedContext: Context = {}
): Promise<void> {
await this.productVariantRepository_.softDelete(ids, {
transactionManager: sharedContext.transactionManager,
})
}
@InjectTransactionManager(doNotForceTransaction, "productVariantRepository_")
async restore(
ids: string[],
@MedusaContext() sharedContext: Context = {}
): Promise<[TEntity[], Record<string, unknown[]>]> {
return await this.productVariantRepository_.restore(ids, {
transactionManager: sharedContext.transactionManager,
})
}
}