feat(core-flows): product type, option and tag events (#9105)
This commit is contained in:
@@ -1,10 +1,13 @@
|
||||
import { AdditionalData, ProductTypes } from "@medusajs/types"
|
||||
import { ProductOptionWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createHook,
|
||||
createWorkflow,
|
||||
transform,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { emitEventStep } from "../../common/steps/emit-event"
|
||||
import { createProductOptionsStep } from "../steps"
|
||||
|
||||
export type CreateProductOptionsWorkflowInput = {
|
||||
@@ -24,6 +27,20 @@ export const createProductOptionsWorkflow = createWorkflow(
|
||||
additional_data: input.additional_data,
|
||||
})
|
||||
|
||||
const optionIdEvents = transform(
|
||||
{ productOptions },
|
||||
({ productOptions }) => {
|
||||
return productOptions.map((v) => {
|
||||
return { id: v.id }
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
emitEventStep({
|
||||
eventName: ProductOptionWorkflowEvents.CREATED,
|
||||
data: optionIdEvents,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(productOptions, {
|
||||
hooks: [productOptionsCreated],
|
||||
})
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
import { AdditionalData, ProductTypes } from "@medusajs/types"
|
||||
import { ProductTagWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createHook,
|
||||
createWorkflow,
|
||||
transform,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { emitEventStep } from "../../common/steps/emit-event"
|
||||
import { createProductTagsStep } from "../steps"
|
||||
|
||||
export type CreateProductTagsWorkflowInput = {
|
||||
@@ -24,6 +27,17 @@ export const createProductTagsWorkflow = createWorkflow(
|
||||
additional_data: input.additional_data,
|
||||
})
|
||||
|
||||
const tagIdEvents = transform({ productTags }, ({ productTags }) => {
|
||||
return productTags.map((v) => {
|
||||
return { id: v.id }
|
||||
})
|
||||
})
|
||||
|
||||
emitEventStep({
|
||||
eventName: ProductTagWorkflowEvents.CREATED,
|
||||
data: tagIdEvents,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(productTags, {
|
||||
hooks: [productTagsCreated],
|
||||
})
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
import { AdditionalData, ProductTypes } from "@medusajs/types"
|
||||
import { ProductTypeWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createHook,
|
||||
createWorkflow,
|
||||
transform,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { emitEventStep } from "../../common/steps/emit-event"
|
||||
import { createProductTypesStep } from "../steps"
|
||||
|
||||
export type CreateProductTypesWorkflowInput = {
|
||||
@@ -24,6 +27,17 @@ export const createProductTypesWorkflow = createWorkflow(
|
||||
additional_data: input.additional_data,
|
||||
})
|
||||
|
||||
const typeIdEvents = transform({ productTypes }, ({ productTypes }) => {
|
||||
return productTypes.map((v) => {
|
||||
return { id: v.id }
|
||||
})
|
||||
})
|
||||
|
||||
emitEventStep({
|
||||
eventName: ProductTypeWorkflowEvents.CREATED,
|
||||
data: typeIdEvents,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(productTypes, {
|
||||
hooks: [productTypesCreated],
|
||||
})
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
import { ProductOptionWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createHook,
|
||||
createWorkflow,
|
||||
transform,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { emitEventStep } from "../../common/steps/emit-event"
|
||||
import { deleteProductOptionsStep } from "../steps"
|
||||
|
||||
export type DeleteProductOptionsWorkflowInput = { ids: string[] }
|
||||
@@ -20,6 +23,17 @@ export const deleteProductOptionsWorkflow = createWorkflow(
|
||||
ids: input.ids,
|
||||
})
|
||||
|
||||
const optionIdEvents = transform({ input }, ({ input }) => {
|
||||
return input.ids?.map((id) => {
|
||||
return { id }
|
||||
})
|
||||
})
|
||||
|
||||
emitEventStep({
|
||||
eventName: ProductOptionWorkflowEvents.DELETED,
|
||||
data: optionIdEvents,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(deletedProductOptions, {
|
||||
hooks: [productOptionsDeleted],
|
||||
})
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
import { ProductTagWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createHook,
|
||||
createWorkflow,
|
||||
transform,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { emitEventStep } from "../../common/steps/emit-event"
|
||||
import { deleteProductTagsStep } from "../steps"
|
||||
|
||||
export type DeleteProductTagsWorkflowInput = { ids: string[] }
|
||||
@@ -20,6 +23,17 @@ export const deleteProductTagsWorkflow = createWorkflow(
|
||||
ids: input.ids,
|
||||
})
|
||||
|
||||
const tagIdEvents = transform({ input }, ({ input }) => {
|
||||
return input.ids?.map((id) => {
|
||||
return { id }
|
||||
})
|
||||
})
|
||||
|
||||
emitEventStep({
|
||||
eventName: ProductTagWorkflowEvents.DELETED,
|
||||
data: tagIdEvents,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(deletedProductTags, {
|
||||
hooks: [productTagsDeleted],
|
||||
})
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
import { ProductTypeWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createHook,
|
||||
createWorkflow,
|
||||
transform,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { emitEventStep } from "../../common/steps/emit-event"
|
||||
import { deleteProductTypesStep } from "../steps"
|
||||
|
||||
export type DeleteProductTypesWorkflowInput = { ids: string[] }
|
||||
@@ -20,6 +23,17 @@ export const deleteProductTypesWorkflow = createWorkflow(
|
||||
ids: input.ids,
|
||||
})
|
||||
|
||||
const typeIdEvents = transform({ input }, ({ input }) => {
|
||||
return input.ids?.map((id) => {
|
||||
return { id }
|
||||
})
|
||||
})
|
||||
|
||||
emitEventStep({
|
||||
eventName: ProductTypeWorkflowEvents.DELETED,
|
||||
data: typeIdEvents,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(deletedProductTypes, {
|
||||
hooks: [productTypesDeleted],
|
||||
})
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
import { AdditionalData, ProductTypes } from "@medusajs/types"
|
||||
import { ProductOptionWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createHook,
|
||||
createWorkflow,
|
||||
transform,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { emitEventStep } from "../../common/steps/emit-event"
|
||||
import { updateProductOptionsStep } from "../steps"
|
||||
|
||||
export type UpdateProductOptionsWorkflowInput = {
|
||||
@@ -25,6 +28,24 @@ export const updateProductOptionsWorkflow = createWorkflow(
|
||||
additional_data: input.additional_data,
|
||||
})
|
||||
|
||||
const optionIdEvents = transform(
|
||||
{ updatedProductOptions },
|
||||
({ updatedProductOptions }) => {
|
||||
const arr = Array.isArray(updatedProductOptions)
|
||||
? updatedProductOptions
|
||||
: [updatedProductOptions]
|
||||
|
||||
return arr?.map((v) => {
|
||||
return { id: v.id }
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
emitEventStep({
|
||||
eventName: ProductOptionWorkflowEvents.UPDATED,
|
||||
data: optionIdEvents,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(updatedProductOptions, {
|
||||
hooks: [productOptionsUpdated],
|
||||
})
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
import { AdditionalData, ProductTypes } from "@medusajs/types"
|
||||
import { ProductTagWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createHook,
|
||||
createWorkflow,
|
||||
transform,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { emitEventStep } from "../../common/steps/emit-event"
|
||||
import { updateProductTagsStep } from "../steps"
|
||||
|
||||
export type UpdateProductTagsWorkflowInput = {
|
||||
@@ -24,6 +27,25 @@ export const updateProductTagsWorkflow = createWorkflow(
|
||||
product_tags: updatedProductTags,
|
||||
additional_data: input.additional_data,
|
||||
})
|
||||
|
||||
const tagIdEvents = transform(
|
||||
{ updatedProductTags },
|
||||
({ updatedProductTags }) => {
|
||||
const arr = Array.isArray(updatedProductTags)
|
||||
? updatedProductTags
|
||||
: [updatedProductTags]
|
||||
|
||||
return arr?.map((v) => {
|
||||
return { id: v.id }
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
emitEventStep({
|
||||
eventName: ProductTagWorkflowEvents.UPDATED,
|
||||
data: tagIdEvents,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(updatedProductTags, {
|
||||
hooks: [productTagsUpdated],
|
||||
})
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
import { AdditionalData, ProductTypes } from "@medusajs/types"
|
||||
import { ProductTypeWorkflowEvents } from "@medusajs/utils"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createHook,
|
||||
createWorkflow,
|
||||
transform,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { emitEventStep } from "../../common/steps/emit-event"
|
||||
import { updateProductTypesStep } from "../steps"
|
||||
|
||||
type UpdateProductTypesWorkflowInput = {
|
||||
@@ -25,6 +28,24 @@ export const updateProductTypesWorkflow = createWorkflow(
|
||||
additional_data: input.additional_data,
|
||||
})
|
||||
|
||||
const typeIdEvents = transform(
|
||||
{ updatedProductTypes },
|
||||
({ updatedProductTypes }) => {
|
||||
const arr = Array.isArray(updatedProductTypes)
|
||||
? updatedProductTypes
|
||||
: [updatedProductTypes]
|
||||
|
||||
return arr?.map((v) => {
|
||||
return { id: v.id }
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
emitEventStep({
|
||||
eventName: ProductTypeWorkflowEvents.UPDATED,
|
||||
data: typeIdEvents,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(updatedProductTypes, {
|
||||
hooks: [productTypesUpdated],
|
||||
})
|
||||
|
||||
@@ -50,6 +50,24 @@ export const ProductWorkflowEvents = {
|
||||
DELETED: "product.deleted",
|
||||
}
|
||||
|
||||
export const ProductTypeWorkflowEvents = {
|
||||
UPDATED: "product-type.updated",
|
||||
CREATED: "product-type.created",
|
||||
DELETED: "product-type.deleted",
|
||||
}
|
||||
|
||||
export const ProductTagWorkflowEvents = {
|
||||
UPDATED: "product-tag.updated",
|
||||
CREATED: "product-tag.created",
|
||||
DELETED: "product-tag.deleted",
|
||||
}
|
||||
|
||||
export const ProductOptionWorkflowEvents = {
|
||||
UPDATED: "product-tag.updated",
|
||||
CREATED: "product-tag.created",
|
||||
DELETED: "product-tag.deleted",
|
||||
}
|
||||
|
||||
export const InviteWorkflowEvents = {
|
||||
ACCEPTED: "invite.accepted",
|
||||
CREATED: "invite.created",
|
||||
|
||||
Reference in New Issue
Block a user