chore(core-flows): added workflow events (#8915)
* chore(core-flows): added workflow events * remove from parallelize * check array
This commit is contained in:
committed by
GitHub
parent
c8f951dd89
commit
89c6ef8fc9
@@ -158,23 +158,24 @@ export const completeCartWorkflow = createWorkflow(
|
||||
({ createdOrders }) => createdOrders[0]
|
||||
)
|
||||
|
||||
createRemoteLinkStep([
|
||||
{
|
||||
[Modules.ORDER]: { order_id: order.id },
|
||||
[Modules.CART]: { cart_id: finalCart.id },
|
||||
},
|
||||
{
|
||||
[Modules.ORDER]: { order_id: order.id },
|
||||
[Modules.PAYMENT]: {
|
||||
payment_collection_id: cart.payment_collection.id,
|
||||
parallelize(
|
||||
createRemoteLinkStep([
|
||||
{
|
||||
[Modules.ORDER]: { order_id: order.id },
|
||||
[Modules.CART]: { cart_id: finalCart.id },
|
||||
},
|
||||
},
|
||||
])
|
||||
|
||||
emitEventStep({
|
||||
eventName: OrderWorkflowEvents.PLACED,
|
||||
data: { id: order.id },
|
||||
})
|
||||
{
|
||||
[Modules.ORDER]: { order_id: order.id },
|
||||
[Modules.PAYMENT]: {
|
||||
payment_collection_id: cart.payment_collection.id,
|
||||
},
|
||||
},
|
||||
]),
|
||||
emitEventStep({
|
||||
eventName: OrderWorkflowEvents.PLACED,
|
||||
data: { id: order.id },
|
||||
})
|
||||
)
|
||||
|
||||
return new WorkflowResponse(order)
|
||||
}
|
||||
|
||||
@@ -1,13 +1,18 @@
|
||||
import { CreateCustomerDTO, AdditionalData } from "@medusajs/types"
|
||||
import { AdditionalData, CreateCustomerDTO } from "@medusajs/types"
|
||||
import { CustomerWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createHook,
|
||||
createWorkflow,
|
||||
transform,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { emitEventStep } from "../../common/steps/emit-event"
|
||||
import { createCustomersStep } from "../steps"
|
||||
|
||||
export type CreateCustomersWorkflowInput = { customersData: CreateCustomerDTO[] } & AdditionalData
|
||||
export type CreateCustomersWorkflowInput = {
|
||||
customersData: CreateCustomerDTO[]
|
||||
} & AdditionalData
|
||||
|
||||
export const createCustomersWorkflowId = "create-customers"
|
||||
/**
|
||||
@@ -22,6 +27,20 @@ export const createCustomersWorkflow = createWorkflow(
|
||||
additional_data: input.additional_data,
|
||||
})
|
||||
|
||||
const customerIdEvents = transform(
|
||||
{ createdCustomers },
|
||||
({ createdCustomers }) => {
|
||||
return createdCustomers.map((v) => {
|
||||
return { id: v.id }
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
emitEventStep({
|
||||
eventName: CustomerWorkflowEvents.CREATED,
|
||||
data: customerIdEvents,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(createdCustomers, {
|
||||
hooks: [customersCreated],
|
||||
})
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
import { CustomerWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createHook,
|
||||
createWorkflow,
|
||||
transform,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { emitEventStep } from "../../common/steps/emit-event"
|
||||
import { deleteCustomersStep } from "../steps"
|
||||
|
||||
export type DeleteCustomersWorkflowInput = { ids: string[] }
|
||||
@@ -20,6 +23,17 @@ export const deleteCustomersWorkflow = createWorkflow(
|
||||
ids: input.ids,
|
||||
})
|
||||
|
||||
const customerIdEvents = transform({ input }, ({ input }) => {
|
||||
return input.ids?.map((id) => {
|
||||
return { id }
|
||||
})
|
||||
})
|
||||
|
||||
emitEventStep({
|
||||
eventName: CustomerWorkflowEvents.DELETED,
|
||||
data: customerIdEvents,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(deletedCustomers, {
|
||||
hooks: [customersDeleted],
|
||||
})
|
||||
|
||||
@@ -3,12 +3,15 @@ import {
|
||||
CustomerUpdatableFields,
|
||||
FilterableCustomerProps,
|
||||
} from "@medusajs/types"
|
||||
import { CustomerWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createHook,
|
||||
createWorkflow,
|
||||
transform,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { emitEventStep } from "../../common/steps/emit-event"
|
||||
import { updateCustomersStep } from "../steps"
|
||||
|
||||
export type UpdateCustomersWorkflowInput = {
|
||||
@@ -29,6 +32,24 @@ export const updateCustomersWorkflow = createWorkflow(
|
||||
additional_data: input.additional_data,
|
||||
})
|
||||
|
||||
const customerIdEvents = transform(
|
||||
{ updatedCustomers },
|
||||
({ updatedCustomers }) => {
|
||||
const arr = Array.isArray(updatedCustomers)
|
||||
? updatedCustomers
|
||||
: [updatedCustomers]
|
||||
|
||||
return arr?.map((customer) => {
|
||||
return { id: customer.id }
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
emitEventStep({
|
||||
eventName: CustomerWorkflowEvents.UPDATED,
|
||||
data: customerIdEvents,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(updatedCustomers, {
|
||||
hooks: [customersUpdated],
|
||||
})
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
import { InviteWorkflow, UserDTO } from "@medusajs/types"
|
||||
import { InviteWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createWorkflow,
|
||||
parallelize,
|
||||
transform,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { createUsersStep } from "../../user"
|
||||
import { setAuthAppMetadataStep } from "../../auth"
|
||||
import { emitEventStep } from "../../common/steps/emit-event"
|
||||
import { createUsersWorkflow } from "../../user"
|
||||
import { deleteInvitesStep } from "../steps"
|
||||
import { validateTokenStep } from "../steps/validate-token"
|
||||
import { setAuthAppMetadataStep } from "../../auth"
|
||||
|
||||
export const acceptInviteWorkflowId = "accept-invite-workflow"
|
||||
/**
|
||||
@@ -33,7 +36,11 @@ export const acceptInviteWorkflow = createWorkflow(
|
||||
}
|
||||
)
|
||||
|
||||
const users = createUsersStep(createUserInput)
|
||||
const users = createUsersWorkflow.runAsStep({
|
||||
input: {
|
||||
users: createUserInput,
|
||||
},
|
||||
})
|
||||
|
||||
const authUserInput = transform({ input, users }, ({ input, users }) => {
|
||||
const createdUser = users[0]
|
||||
@@ -45,8 +52,14 @@ export const acceptInviteWorkflow = createWorkflow(
|
||||
}
|
||||
})
|
||||
|
||||
setAuthAppMetadataStep(authUserInput)
|
||||
deleteInvitesStep([invite.id])
|
||||
parallelize(
|
||||
setAuthAppMetadataStep(authUserInput),
|
||||
deleteInvitesStep([invite.id]),
|
||||
emitEventStep({
|
||||
eventName: InviteWorkflowEvents.ACCEPTED,
|
||||
data: { id: invite.id },
|
||||
})
|
||||
)
|
||||
|
||||
return new WorkflowResponse(users)
|
||||
}
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
import { InviteDTO, InviteWorkflow } from "@medusajs/types"
|
||||
import { InviteWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createWorkflow,
|
||||
transform,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { emitEventStep } from "../../common/steps/emit-event"
|
||||
import { createInviteStep } from "../steps"
|
||||
import { InviteDTO, InviteWorkflow } from "@medusajs/types"
|
||||
|
||||
export const createInvitesWorkflowId = "create-invite-step"
|
||||
/**
|
||||
* This workflow creates one or more invites.
|
||||
@@ -15,6 +17,22 @@ export const createInvitesWorkflow = createWorkflow(
|
||||
(
|
||||
input: WorkflowData<InviteWorkflow.CreateInvitesWorkflowInputDTO>
|
||||
): WorkflowResponse<InviteDTO[]> => {
|
||||
return new WorkflowResponse(createInviteStep(input.invites))
|
||||
const createdInvites = createInviteStep(input.invites)
|
||||
|
||||
const invitesIdEvents = transform(
|
||||
{ createdInvites },
|
||||
({ createdInvites }) => {
|
||||
return createdInvites.map((v) => {
|
||||
return { id: v.id }
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
emitEventStep({
|
||||
eventName: InviteWorkflowEvents.CREATED,
|
||||
data: invitesIdEvents,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(createdInvites)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
import { WorkflowData, createWorkflow } from "@medusajs/workflows-sdk"
|
||||
import { InviteWorkflow } from "@medusajs/types"
|
||||
import { InviteWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
createWorkflow,
|
||||
transform,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { emitEventStep } from "../../common/steps/emit-event"
|
||||
import { deleteInvitesStep } from "../steps"
|
||||
import { InviteWorkflow, UserWorkflow } from "@medusajs/types"
|
||||
|
||||
export const deleteInvitesWorkflowId = "delete-invites-workflow"
|
||||
/**
|
||||
@@ -11,6 +17,17 @@ export const deleteInvitesWorkflow = createWorkflow(
|
||||
(
|
||||
input: WorkflowData<InviteWorkflow.DeleteInvitesWorkflowInput>
|
||||
): WorkflowData<void> => {
|
||||
return deleteInvitesStep(input.ids)
|
||||
deleteInvitesStep(input.ids)
|
||||
|
||||
const invitesIdEvents = transform({ input }, ({ input }) => {
|
||||
return input.ids?.map((id) => {
|
||||
return { id }
|
||||
})
|
||||
})
|
||||
|
||||
emitEventStep({
|
||||
eventName: InviteWorkflowEvents.DELETED,
|
||||
data: invitesIdEvents,
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
@@ -23,7 +23,11 @@ export const updateProductCategoriesWorkflow = createWorkflow(
|
||||
const productCategoryIdEvents = transform(
|
||||
{ updatedCategories },
|
||||
({ updatedCategories }) => {
|
||||
return updatedCategories.map((v) => {
|
||||
const arr = Array.isArray(updatedCategories)
|
||||
? updatedCategories
|
||||
: [updatedCategories]
|
||||
|
||||
return arr?.map((v) => {
|
||||
return { id: v.id }
|
||||
})
|
||||
}
|
||||
|
||||
@@ -27,7 +27,11 @@ export const updateCollectionsWorkflow = createWorkflow(
|
||||
const collectionIdEvents = transform(
|
||||
{ updatedCollections },
|
||||
({ updatedCollections }) => {
|
||||
return updatedCollections.map((v) => {
|
||||
const arr = Array.isArray(updatedCollections)
|
||||
? updatedCollections
|
||||
: [updatedCollections]
|
||||
|
||||
return arr?.map((v) => {
|
||||
return { id: v.id }
|
||||
})
|
||||
}
|
||||
|
||||
@@ -139,7 +139,7 @@ export const updateProductVariantsWorkflow = createWorkflow(
|
||||
)
|
||||
|
||||
const variantIdEvents = transform({ response }, ({ response }) => {
|
||||
return response.map((v) => {
|
||||
return response?.map((v) => {
|
||||
return { id: v.id }
|
||||
})
|
||||
})
|
||||
|
||||
@@ -16,6 +16,7 @@ import {
|
||||
WorkflowResponse,
|
||||
createHook,
|
||||
createWorkflow,
|
||||
parallelize,
|
||||
transform,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import {
|
||||
@@ -282,21 +283,23 @@ export const updateProductsWorkflow = createWorkflow(
|
||||
})
|
||||
|
||||
dismissRemoteLinkStep(toDeleteSalesChannelLinks)
|
||||
createRemoteLinkStep(salesChannelLinks)
|
||||
|
||||
const productIdEvents = transform(
|
||||
{ updatedProductIds },
|
||||
({ updatedProductIds }) => {
|
||||
return updatedProductIds.map((id) => {
|
||||
return updatedProductIds?.map((id) => {
|
||||
return { id }
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
emitEventStep({
|
||||
eventName: ProductWorkflowEvents.UPDATED,
|
||||
data: productIdEvents,
|
||||
})
|
||||
parallelize(
|
||||
createRemoteLinkStep(salesChannelLinks),
|
||||
emitEventStep({
|
||||
eventName: ProductWorkflowEvents.UPDATED,
|
||||
data: productIdEvents,
|
||||
})
|
||||
)
|
||||
|
||||
const productsUpdated = createHook("productsUpdated", {
|
||||
products: updatedProducts,
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
import { CreateRegionDTO, WorkflowTypes } from "@medusajs/types"
|
||||
import { WorkflowTypes } from "@medusajs/types"
|
||||
import { RegionWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createWorkflow,
|
||||
parallelize,
|
||||
transform,
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { emitEventStep } from "../../common/steps/emit-event"
|
||||
import { createPricePreferencesWorkflow } from "../../pricing"
|
||||
import { createRegionsStep } from "../steps"
|
||||
import { setRegionsPaymentProvidersStep } from "../steps/set-regions-payment-providers"
|
||||
import { createPricePreferencesWorkflow } from "../../pricing"
|
||||
|
||||
export const createRegionsWorkflowId = "create-regions"
|
||||
/**
|
||||
@@ -76,12 +78,22 @@ export const createRegionsWorkflow = createWorkflow(
|
||||
}
|
||||
)
|
||||
|
||||
const regionsIdEvents = transform({ regions }, ({ regions }) => {
|
||||
return regions.map((v) => {
|
||||
return { id: v.id }
|
||||
})
|
||||
})
|
||||
|
||||
parallelize(
|
||||
setRegionsPaymentProvidersStep({
|
||||
input: normalizedRegionProviderData,
|
||||
}),
|
||||
createPricePreferencesWorkflow.runAsStep({
|
||||
input: normalizedRegionPricePreferencesData,
|
||||
}),
|
||||
emitEventStep({
|
||||
eventName: RegionWorkflowEvents.CREATED,
|
||||
data: regionsIdEvents,
|
||||
})
|
||||
)
|
||||
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
import { WorkflowData, createWorkflow } from "@medusajs/workflows-sdk"
|
||||
import { RegionWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
createWorkflow,
|
||||
transform,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { emitEventStep } from "../../common/steps/emit-event"
|
||||
import { deleteRegionsStep } from "../steps"
|
||||
|
||||
export type DeleteRegionsWorkflowInput = { ids: string[] }
|
||||
@@ -10,6 +16,17 @@ export const deleteRegionsWorkflowId = "delete-regions"
|
||||
export const deleteRegionsWorkflow = createWorkflow(
|
||||
deleteRegionsWorkflowId,
|
||||
(input: WorkflowData<DeleteRegionsWorkflowInput>): WorkflowData<void> => {
|
||||
return deleteRegionsStep(input.ids)
|
||||
deleteRegionsStep(input.ids)
|
||||
|
||||
const regionIdEvents = transform({ input }, ({ input }) => {
|
||||
return input.ids?.map((id) => {
|
||||
return { id }
|
||||
})
|
||||
})
|
||||
|
||||
emitEventStep({
|
||||
eventName: RegionWorkflowEvents.DELETED,
|
||||
data: regionIdEvents,
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { WorkflowTypes } from "@medusajs/types"
|
||||
import { RegionWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
createWorkflow,
|
||||
parallelize,
|
||||
@@ -7,9 +8,10 @@ import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { emitEventStep } from "../../common/steps/emit-event"
|
||||
import { updatePricePreferencesWorkflow } from "../../pricing"
|
||||
import { updateRegionsStep } from "../steps"
|
||||
import { setRegionsPaymentProvidersStep } from "../steps/set-regions-payment-providers"
|
||||
import { updatePricePreferencesWorkflow } from "../../pricing"
|
||||
|
||||
export const updateRegionsWorkflowId = "update-regions"
|
||||
/**
|
||||
@@ -72,10 +74,22 @@ export const updateRegionsWorkflow = createWorkflow(
|
||||
})
|
||||
})
|
||||
|
||||
setRegionsPaymentProvidersStep({
|
||||
input: upsertProvidersNormalizedInput,
|
||||
const regionIdEvents = transform({ regions }, ({ regions }) => {
|
||||
return regions?.map((region) => {
|
||||
return { id: region.id }
|
||||
})
|
||||
})
|
||||
|
||||
parallelize(
|
||||
setRegionsPaymentProvidersStep({
|
||||
input: upsertProvidersNormalizedInput,
|
||||
}),
|
||||
emitEventStep({
|
||||
eventName: RegionWorkflowEvents.UPDATED,
|
||||
data: regionIdEvents,
|
||||
})
|
||||
)
|
||||
|
||||
return new WorkflowResponse(regions)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
import { CreateSalesChannelDTO, SalesChannelDTO } from "@medusajs/types"
|
||||
import { SalesChannelWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createWorkflow,
|
||||
transform,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { emitEventStep } from "../../common/steps/emit-event"
|
||||
import { createSalesChannelsStep } from "../steps/create-sales-channels"
|
||||
|
||||
export type CreateSalesChannelsWorkflowInput = { salesChannelsData: CreateSalesChannelDTO[] }
|
||||
export type CreateSalesChannelsWorkflowInput = {
|
||||
salesChannelsData: CreateSalesChannelDTO[]
|
||||
}
|
||||
|
||||
export const createSalesChannelsWorkflowId = "create-sales-channels"
|
||||
/**
|
||||
@@ -14,9 +19,27 @@ export const createSalesChannelsWorkflowId = "create-sales-channels"
|
||||
*/
|
||||
export const createSalesChannelsWorkflow = createWorkflow(
|
||||
createSalesChannelsWorkflowId,
|
||||
(input: WorkflowData<CreateSalesChannelsWorkflowInput>): WorkflowResponse<SalesChannelDTO[]> => {
|
||||
return new WorkflowResponse(
|
||||
createSalesChannelsStep({ data: input.salesChannelsData })
|
||||
(
|
||||
input: WorkflowData<CreateSalesChannelsWorkflowInput>
|
||||
): WorkflowResponse<SalesChannelDTO[]> => {
|
||||
const createdSalesChannels = createSalesChannelsStep({
|
||||
data: input.salesChannelsData,
|
||||
})
|
||||
|
||||
const salesChannelsIdEvents = transform(
|
||||
{ createdSalesChannels },
|
||||
({ createdSalesChannels }) => {
|
||||
return createdSalesChannels.map((v) => {
|
||||
return { id: v.id }
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
emitEventStep({
|
||||
eventName: SalesChannelWorkflowEvents.CREATED,
|
||||
data: salesChannelsIdEvents,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(createdSalesChannels)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
import { createWorkflow, WorkflowData } from "@medusajs/workflows-sdk"
|
||||
|
||||
import { deleteSalesChannelsStep } from "../steps/delete-sales-channels"
|
||||
import { Modules, UserWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
createWorkflow,
|
||||
transform,
|
||||
WorkflowData,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { emitEventStep } from "../../common"
|
||||
import { removeRemoteLinkStep } from "../../common/steps/remove-remote-links"
|
||||
import { Modules } from "@medusajs/utils"
|
||||
import { deleteSalesChannelsStep } from "../steps/delete-sales-channels"
|
||||
|
||||
export type DeleteSalesChannelsWorkflowInput = { ids: string[] }
|
||||
|
||||
@@ -12,11 +16,24 @@ export const deleteSalesChannelsWorkflowId = "delete-sales-channels"
|
||||
*/
|
||||
export const deleteSalesChannelsWorkflow = createWorkflow(
|
||||
deleteSalesChannelsWorkflowId,
|
||||
(input: WorkflowData<DeleteSalesChannelsWorkflowInput>): WorkflowData<void> => {
|
||||
(
|
||||
input: WorkflowData<DeleteSalesChannelsWorkflowInput>
|
||||
): WorkflowData<void> => {
|
||||
deleteSalesChannelsStep(input.ids)
|
||||
|
||||
removeRemoteLinkStep({
|
||||
[Modules.SALES_CHANNEL]: { sales_channel_id: input.ids },
|
||||
})
|
||||
|
||||
const salesChannelsIdEvents = transform({ input }, ({ input }) => {
|
||||
return input.ids?.map((id) => {
|
||||
return { id }
|
||||
})
|
||||
})
|
||||
|
||||
emitEventStep({
|
||||
eventName: UserWorkflowEvents.DELETED,
|
||||
data: salesChannelsIdEvents,
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
@@ -3,11 +3,14 @@ import {
|
||||
SalesChannelDTO,
|
||||
UpdateSalesChannelDTO,
|
||||
} from "@medusajs/types"
|
||||
import { SalesChannelWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createWorkflow,
|
||||
transform,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { emitEventStep } from "../../common"
|
||||
import { updateSalesChannelsStep } from "../steps/update-sales-channels"
|
||||
|
||||
export type UpdateSalesChannelsWorkflowInput = {
|
||||
@@ -24,6 +27,25 @@ export const updateSalesChannelsWorkflow = createWorkflow(
|
||||
(
|
||||
input: WorkflowData<UpdateSalesChannelsWorkflowInput>
|
||||
): WorkflowResponse<SalesChannelDTO[]> => {
|
||||
return new WorkflowResponse(updateSalesChannelsStep(input))
|
||||
const updatedSalesChannels = updateSalesChannelsStep(input)
|
||||
|
||||
const salesChannelIdEvents = transform(
|
||||
{ updatedSalesChannels },
|
||||
({ updatedSalesChannels }) => {
|
||||
const arr = Array.isArray(updatedSalesChannels)
|
||||
? updatedSalesChannels
|
||||
: [updatedSalesChannels]
|
||||
return arr?.map((salesChannel) => {
|
||||
return { id: salesChannel.id }
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
emitEventStep({
|
||||
eventName: SalesChannelWorkflowEvents.UPDATED,
|
||||
data: salesChannelIdEvents,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(updatedSalesChannels)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -5,8 +5,8 @@ import {
|
||||
createWorkflow,
|
||||
transform,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { createUsersStep } from "../steps"
|
||||
import { setAuthAppMetadataStep } from "../../auth"
|
||||
import { createUsersWorkflow } from "./create-users"
|
||||
|
||||
export type CreateUserAccountWorkflowInput = {
|
||||
authIdentityId: string
|
||||
@@ -19,8 +19,15 @@ export const createUserAccountWorkflowId = "create-user-account"
|
||||
*/
|
||||
export const createUserAccountWorkflow = createWorkflow(
|
||||
createUserAccountWorkflowId,
|
||||
(input: WorkflowData<CreateUserAccountWorkflowInput>): WorkflowResponse<UserDTO> => {
|
||||
const users = createUsersStep([input.userData])
|
||||
(
|
||||
input: WorkflowData<CreateUserAccountWorkflowInput>
|
||||
): WorkflowResponse<UserDTO> => {
|
||||
const users = createUsersWorkflow.runAsStep({
|
||||
input: {
|
||||
users: [input.userData],
|
||||
},
|
||||
})
|
||||
|
||||
const user = transform(users, (users: UserDTO[]) => users[0])
|
||||
|
||||
setAuthAppMetadataStep({
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
import { CreateUserDTO, UserDTO } from "@medusajs/types"
|
||||
import { UserDTO, UserWorkflow } from "@medusajs/types"
|
||||
import { UserWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createWorkflow,
|
||||
transform,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { emitEventStep } from "../../common/steps/emit-event"
|
||||
import { createUsersStep } from "../steps"
|
||||
import { UserWorkflow } from "@medusajs/types"
|
||||
|
||||
export const createUsersWorkflowId = "create-users-workflow"
|
||||
/**
|
||||
@@ -16,6 +18,19 @@ export const createUsersWorkflow = createWorkflow(
|
||||
(
|
||||
input: WorkflowData<UserWorkflow.CreateUsersWorkflowInputDTO>
|
||||
): WorkflowResponse<UserDTO[]> => {
|
||||
return new WorkflowResponse(createUsersStep(input.users))
|
||||
const createdUsers = createUsersStep(input.users)
|
||||
|
||||
const userIdEvents = transform({ createdUsers }, ({ createdUsers }) => {
|
||||
return createdUsers.map((v) => {
|
||||
return { id: v.id }
|
||||
})
|
||||
})
|
||||
|
||||
emitEventStep({
|
||||
eventName: UserWorkflowEvents.CREATED,
|
||||
data: userIdEvents,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(createdUsers)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
import { WorkflowData, createWorkflow } from "@medusajs/workflows-sdk"
|
||||
import { deleteUsersStep } from "../steps"
|
||||
import { UserWorkflow } from "@medusajs/types"
|
||||
import { UserWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
createWorkflow,
|
||||
transform,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { emitEventStep } from "../../common"
|
||||
import { deleteUsersStep } from "../steps"
|
||||
|
||||
export const deleteUsersWorkflowId = "delete-user"
|
||||
/**
|
||||
@@ -11,6 +17,17 @@ export const deleteUsersWorkflow = createWorkflow(
|
||||
(
|
||||
input: WorkflowData<UserWorkflow.DeleteUserWorkflowInput>
|
||||
): WorkflowData<void> => {
|
||||
return deleteUsersStep(input.ids)
|
||||
deleteUsersStep(input.ids)
|
||||
|
||||
const userIdEvents = transform({ input }, ({ input }) => {
|
||||
return input.ids?.map((id) => {
|
||||
return { id }
|
||||
})
|
||||
})
|
||||
|
||||
emitEventStep({
|
||||
eventName: UserWorkflowEvents.DELETED,
|
||||
data: userIdEvents,
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
import { UserDTO } from "@medusajs/types"
|
||||
import { UserDTO, UserWorkflow } from "@medusajs/types"
|
||||
import { UserWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createWorkflow,
|
||||
transform,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { emitEventStep } from "../../common/steps/emit-event"
|
||||
import { updateUsersStep } from "../steps"
|
||||
import { UserWorkflow } from "@medusajs/types"
|
||||
|
||||
export const updateUsersWorkflowId = "update-users-workflow"
|
||||
/**
|
||||
@@ -16,6 +18,21 @@ export const updateUsersWorkflow = createWorkflow(
|
||||
(
|
||||
input: WorkflowData<UserWorkflow.UpdateUsersWorkflowInputDTO>
|
||||
): WorkflowResponse<UserDTO[]> => {
|
||||
return new WorkflowResponse(updateUsersStep(input.updates))
|
||||
const updatedUsers = updateUsersStep(input.updates)
|
||||
|
||||
const userIdEvents = transform({ updatedUsers }, ({ updatedUsers }) => {
|
||||
const arr = Array.isArray(updatedUsers) ? updatedUsers : [updatedUsers]
|
||||
|
||||
return arr?.map((user) => {
|
||||
return { id: user.id }
|
||||
})
|
||||
})
|
||||
|
||||
emitEventStep({
|
||||
eventName: UserWorkflowEvents.UPDATED,
|
||||
data: userIdEvents,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(updatedUsers)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
export * as ApiKeyUtils from "./api-key"
|
||||
export * as CoreFlowsUitls from "./core-flows"
|
||||
export * as DALUtils from "./dal"
|
||||
export * as DecoratorUtils from "./decorators"
|
||||
export * as DefaultsUtils from "./defaults"
|
||||
|
||||
53
packages/core/utils/src/core-flows/events.ts
Normal file
53
packages/core/utils/src/core-flows/events.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
export const CustomerWorkflowEvents = {
|
||||
CREATED: "customer.created",
|
||||
UPDATED: "customer.updated",
|
||||
DELETED: "customer.deleted",
|
||||
}
|
||||
|
||||
export const OrderWorkflowEvents = {
|
||||
PLACED: "order.placed",
|
||||
CANCELED: "order.canceled",
|
||||
COMPLETED: "order.completed",
|
||||
}
|
||||
|
||||
export const SalesChannelWorkflowEvents = {
|
||||
CREATED: "sales-channel.created",
|
||||
UPDATED: "sales-channel.updated",
|
||||
DELETED: "sales-channel.deleted",
|
||||
}
|
||||
|
||||
export const ProductCategoryWorkflowEvents = {
|
||||
CREATED: "product-category.created",
|
||||
UPDATED: "product-category.updated",
|
||||
DELETED: "product-category.deleted",
|
||||
}
|
||||
|
||||
export const ProductCollectionWorkflowEvents = {
|
||||
CREATED: "product-collection.created",
|
||||
UPDATED: "product-collection.updated",
|
||||
DELETED: "product-collection.deleted",
|
||||
}
|
||||
|
||||
export const ProductVariantWorkflowEvents = {
|
||||
UPDATED: "product-variant.updated",
|
||||
CREATED: "product-variant.created",
|
||||
DELETED: "product-variant.deleted",
|
||||
}
|
||||
|
||||
export const ProductWorkflowEvents = {
|
||||
UPDATED: "product.updated",
|
||||
CREATED: "product.created",
|
||||
DELETED: "product.deleted",
|
||||
}
|
||||
|
||||
export const InviteWorkflowEvents = {
|
||||
ACCEPTED: "invite.accepted",
|
||||
CREATED: "invite.created",
|
||||
DELETED: "invite.deleted",
|
||||
}
|
||||
|
||||
export const RegionWorkflowEvents = {
|
||||
UPDATED: "region.updated",
|
||||
CREATED: "region.created",
|
||||
DELETED: "region.deleted",
|
||||
}
|
||||
1
packages/core/utils/src/core-flows/index.ts
Normal file
1
packages/core/utils/src/core-flows/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export * from "./events"
|
||||
@@ -2,6 +2,7 @@ export * from "./api-key"
|
||||
export * from "./auth"
|
||||
export * from "./bundles"
|
||||
export * from "./common"
|
||||
export * from "./core-flows"
|
||||
export * from "./dal"
|
||||
export * from "./decorators"
|
||||
export * from "./defaults"
|
||||
@@ -18,6 +19,7 @@ export * from "./notification"
|
||||
export * from "./orchestration"
|
||||
export * from "./order"
|
||||
export * from "./payment"
|
||||
export * from "./pg"
|
||||
export * from "./pricing"
|
||||
export * from "./product"
|
||||
export * from "./promotion"
|
||||
@@ -26,6 +28,5 @@ export * from "./shipping"
|
||||
export * from "./totals"
|
||||
export * from "./totals/big-number"
|
||||
export * from "./user"
|
||||
export * from "./pg"
|
||||
|
||||
export const MedusaModuleType = Symbol.for("MedusaModule")
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
export const OrderWorkflowEvents = {
|
||||
PLACED: "order.placed",
|
||||
CANCELED: "order.canceled",
|
||||
COMPLETED: "order.completed",
|
||||
}
|
||||
@@ -1,4 +1,3 @@
|
||||
export * from "./events"
|
||||
export * from "./order-change"
|
||||
export * from "./order-change-action"
|
||||
export * from "./status"
|
||||
|
||||
@@ -21,27 +21,3 @@ export const ProductEvents = buildEventNamesFromEntityName(
|
||||
eventBaseNames,
|
||||
Modules.PRODUCT
|
||||
)
|
||||
|
||||
export const ProductCategoryWorkflowEvents = {
|
||||
CREATED: "product-category.created",
|
||||
UPDATED: "product-category.updated",
|
||||
DELETED: "product-category.deleted",
|
||||
}
|
||||
|
||||
export const ProductCollectionWorkflowEvents = {
|
||||
CREATED: "product-collection.created",
|
||||
UPDATED: "product-collection.updated",
|
||||
DELETED: "product-collection.deleted",
|
||||
}
|
||||
|
||||
export const ProductVariantWorkflowEvents = {
|
||||
UPDATED: "product-variant.updated",
|
||||
CREATED: "product-variant.created",
|
||||
DELETED: "product-variant.deleted",
|
||||
}
|
||||
|
||||
export const ProductWorkflowEvents = {
|
||||
UPDATED: "product.updated",
|
||||
CREATED: "product.created",
|
||||
DELETED: "product.deleted",
|
||||
}
|
||||
|
||||
@@ -7,3 +7,9 @@ export const UserEvents = {
|
||||
...buildEventNamesFromEntityName(eventBaseNames, Modules.USER),
|
||||
INVITE_TOKEN_GENERATED: `${Modules.USER}.user.invite.token_generated`,
|
||||
}
|
||||
|
||||
export const UserWorkflowEvents = {
|
||||
CREATED: "user.created",
|
||||
UPDATED: "user.updated",
|
||||
DELETED: "user.deleted",
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user