feat(workflows-sdk): Execute workflows as step in other workflows (#7183)

This commit is contained in:
Adrien de Peretti
2024-05-02 16:29:28 +02:00
committed by GitHub
parent b8a0a459a8
commit 7a351eef09
13 changed files with 474 additions and 273 deletions
@@ -5,17 +5,20 @@ import {
TransactionStep,
} from "@medusajs/orchestration"
import { ContainerLike, Context, MedusaContainer } from "@medusajs/types"
import { InjectSharedContext, MedusaContext, isString } from "@medusajs/utils"
import { InjectSharedContext, isString, MedusaContext } from "@medusajs/utils"
import {
MedusaWorkflow,
ReturnWorkflow,
resolveValue,
type FlowRunOptions,
MedusaWorkflow,
resolveValue,
ReturnWorkflow,
} from "@medusajs/workflows-sdk"
import { ulid } from "ulid"
import { InMemoryDistributedTransactionStorage } from "../utils"
export type WorkflowOrchestratorRunOptions<T> = FlowRunOptions<T> & {
export type WorkflowOrchestratorRunOptions<T> = Omit<
FlowRunOptions<T>,
"container"
> & {
transactionId?: string
container?: ContainerLike
}
@@ -9,9 +9,9 @@ import {
import {
InjectManager,
InjectSharedContext,
isString,
MedusaContext,
MedusaError,
isString,
} from "@medusajs/utils"
import type {
IWorkflowEngineService,
@@ -191,7 +191,7 @@ export class WorkflowsModuleService implements IWorkflowEngineService {
transactionId: string,
@MedusaContext() context: Context = {}
) {
return this.workflowOrchestratorService_.getRunningTransaction(
return await this.workflowOrchestratorService_.getRunningTransaction(
workflowId,
transactionId,
context
@@ -211,7 +211,7 @@ export class WorkflowsModuleService implements IWorkflowEngineService {
},
@MedusaContext() context: Context = {}
) {
return this.workflowOrchestratorService_.setStepSuccess(
return await this.workflowOrchestratorService_.setStepSuccess(
{
idempotencyKey,
stepResponse,
@@ -234,7 +234,7 @@ export class WorkflowsModuleService implements IWorkflowEngineService {
},
@MedusaContext() context: Context = {}
) {
return this.workflowOrchestratorService_.setStepFailure(
return await this.workflowOrchestratorService_.setStepFailure(
{
idempotencyKey,
stepResponse,