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 { AdditionalData, ProductTypes } from "@medusajs/types"
|
||||||
|
import { ProductOptionWorkflowEvents } from "@medusajs/utils"
|
||||||
import {
|
import {
|
||||||
WorkflowData,
|
WorkflowData,
|
||||||
WorkflowResponse,
|
WorkflowResponse,
|
||||||
createHook,
|
createHook,
|
||||||
createWorkflow,
|
createWorkflow,
|
||||||
|
transform,
|
||||||
} from "@medusajs/workflows-sdk"
|
} from "@medusajs/workflows-sdk"
|
||||||
|
import { emitEventStep } from "../../common/steps/emit-event"
|
||||||
import { createProductOptionsStep } from "../steps"
|
import { createProductOptionsStep } from "../steps"
|
||||||
|
|
||||||
export type CreateProductOptionsWorkflowInput = {
|
export type CreateProductOptionsWorkflowInput = {
|
||||||
@@ -24,6 +27,20 @@ export const createProductOptionsWorkflow = createWorkflow(
|
|||||||
additional_data: input.additional_data,
|
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, {
|
return new WorkflowResponse(productOptions, {
|
||||||
hooks: [productOptionsCreated],
|
hooks: [productOptionsCreated],
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
import { AdditionalData, ProductTypes } from "@medusajs/types"
|
import { AdditionalData, ProductTypes } from "@medusajs/types"
|
||||||
|
import { ProductTagWorkflowEvents } from "@medusajs/utils"
|
||||||
import {
|
import {
|
||||||
WorkflowData,
|
WorkflowData,
|
||||||
WorkflowResponse,
|
WorkflowResponse,
|
||||||
createHook,
|
createHook,
|
||||||
createWorkflow,
|
createWorkflow,
|
||||||
|
transform,
|
||||||
} from "@medusajs/workflows-sdk"
|
} from "@medusajs/workflows-sdk"
|
||||||
|
import { emitEventStep } from "../../common/steps/emit-event"
|
||||||
import { createProductTagsStep } from "../steps"
|
import { createProductTagsStep } from "../steps"
|
||||||
|
|
||||||
export type CreateProductTagsWorkflowInput = {
|
export type CreateProductTagsWorkflowInput = {
|
||||||
@@ -24,6 +27,17 @@ export const createProductTagsWorkflow = createWorkflow(
|
|||||||
additional_data: input.additional_data,
|
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, {
|
return new WorkflowResponse(productTags, {
|
||||||
hooks: [productTagsCreated],
|
hooks: [productTagsCreated],
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
import { AdditionalData, ProductTypes } from "@medusajs/types"
|
import { AdditionalData, ProductTypes } from "@medusajs/types"
|
||||||
|
import { ProductTypeWorkflowEvents } from "@medusajs/utils"
|
||||||
import {
|
import {
|
||||||
WorkflowData,
|
WorkflowData,
|
||||||
WorkflowResponse,
|
WorkflowResponse,
|
||||||
createHook,
|
createHook,
|
||||||
createWorkflow,
|
createWorkflow,
|
||||||
|
transform,
|
||||||
} from "@medusajs/workflows-sdk"
|
} from "@medusajs/workflows-sdk"
|
||||||
|
import { emitEventStep } from "../../common/steps/emit-event"
|
||||||
import { createProductTypesStep } from "../steps"
|
import { createProductTypesStep } from "../steps"
|
||||||
|
|
||||||
export type CreateProductTypesWorkflowInput = {
|
export type CreateProductTypesWorkflowInput = {
|
||||||
@@ -24,6 +27,17 @@ export const createProductTypesWorkflow = createWorkflow(
|
|||||||
additional_data: input.additional_data,
|
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, {
|
return new WorkflowResponse(productTypes, {
|
||||||
hooks: [productTypesCreated],
|
hooks: [productTypesCreated],
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
|
import { ProductOptionWorkflowEvents } from "@medusajs/utils"
|
||||||
import {
|
import {
|
||||||
WorkflowData,
|
WorkflowData,
|
||||||
WorkflowResponse,
|
WorkflowResponse,
|
||||||
createHook,
|
createHook,
|
||||||
createWorkflow,
|
createWorkflow,
|
||||||
|
transform,
|
||||||
} from "@medusajs/workflows-sdk"
|
} from "@medusajs/workflows-sdk"
|
||||||
|
import { emitEventStep } from "../../common/steps/emit-event"
|
||||||
import { deleteProductOptionsStep } from "../steps"
|
import { deleteProductOptionsStep } from "../steps"
|
||||||
|
|
||||||
export type DeleteProductOptionsWorkflowInput = { ids: string[] }
|
export type DeleteProductOptionsWorkflowInput = { ids: string[] }
|
||||||
@@ -20,6 +23,17 @@ export const deleteProductOptionsWorkflow = createWorkflow(
|
|||||||
ids: input.ids,
|
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, {
|
return new WorkflowResponse(deletedProductOptions, {
|
||||||
hooks: [productOptionsDeleted],
|
hooks: [productOptionsDeleted],
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
|
import { ProductTagWorkflowEvents } from "@medusajs/utils"
|
||||||
import {
|
import {
|
||||||
WorkflowData,
|
WorkflowData,
|
||||||
WorkflowResponse,
|
WorkflowResponse,
|
||||||
createHook,
|
createHook,
|
||||||
createWorkflow,
|
createWorkflow,
|
||||||
|
transform,
|
||||||
} from "@medusajs/workflows-sdk"
|
} from "@medusajs/workflows-sdk"
|
||||||
|
import { emitEventStep } from "../../common/steps/emit-event"
|
||||||
import { deleteProductTagsStep } from "../steps"
|
import { deleteProductTagsStep } from "../steps"
|
||||||
|
|
||||||
export type DeleteProductTagsWorkflowInput = { ids: string[] }
|
export type DeleteProductTagsWorkflowInput = { ids: string[] }
|
||||||
@@ -20,6 +23,17 @@ export const deleteProductTagsWorkflow = createWorkflow(
|
|||||||
ids: input.ids,
|
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, {
|
return new WorkflowResponse(deletedProductTags, {
|
||||||
hooks: [productTagsDeleted],
|
hooks: [productTagsDeleted],
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
|
import { ProductTypeWorkflowEvents } from "@medusajs/utils"
|
||||||
import {
|
import {
|
||||||
WorkflowData,
|
WorkflowData,
|
||||||
WorkflowResponse,
|
WorkflowResponse,
|
||||||
createHook,
|
createHook,
|
||||||
createWorkflow,
|
createWorkflow,
|
||||||
|
transform,
|
||||||
} from "@medusajs/workflows-sdk"
|
} from "@medusajs/workflows-sdk"
|
||||||
|
import { emitEventStep } from "../../common/steps/emit-event"
|
||||||
import { deleteProductTypesStep } from "../steps"
|
import { deleteProductTypesStep } from "../steps"
|
||||||
|
|
||||||
export type DeleteProductTypesWorkflowInput = { ids: string[] }
|
export type DeleteProductTypesWorkflowInput = { ids: string[] }
|
||||||
@@ -20,6 +23,17 @@ export const deleteProductTypesWorkflow = createWorkflow(
|
|||||||
ids: input.ids,
|
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, {
|
return new WorkflowResponse(deletedProductTypes, {
|
||||||
hooks: [productTypesDeleted],
|
hooks: [productTypesDeleted],
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
import { AdditionalData, ProductTypes } from "@medusajs/types"
|
import { AdditionalData, ProductTypes } from "@medusajs/types"
|
||||||
|
import { ProductOptionWorkflowEvents } from "@medusajs/utils"
|
||||||
import {
|
import {
|
||||||
WorkflowData,
|
WorkflowData,
|
||||||
WorkflowResponse,
|
WorkflowResponse,
|
||||||
createHook,
|
createHook,
|
||||||
createWorkflow,
|
createWorkflow,
|
||||||
|
transform,
|
||||||
} from "@medusajs/workflows-sdk"
|
} from "@medusajs/workflows-sdk"
|
||||||
|
import { emitEventStep } from "../../common/steps/emit-event"
|
||||||
import { updateProductOptionsStep } from "../steps"
|
import { updateProductOptionsStep } from "../steps"
|
||||||
|
|
||||||
export type UpdateProductOptionsWorkflowInput = {
|
export type UpdateProductOptionsWorkflowInput = {
|
||||||
@@ -25,6 +28,24 @@ export const updateProductOptionsWorkflow = createWorkflow(
|
|||||||
additional_data: input.additional_data,
|
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, {
|
return new WorkflowResponse(updatedProductOptions, {
|
||||||
hooks: [productOptionsUpdated],
|
hooks: [productOptionsUpdated],
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
import { AdditionalData, ProductTypes } from "@medusajs/types"
|
import { AdditionalData, ProductTypes } from "@medusajs/types"
|
||||||
|
import { ProductTagWorkflowEvents } from "@medusajs/utils"
|
||||||
import {
|
import {
|
||||||
WorkflowData,
|
WorkflowData,
|
||||||
WorkflowResponse,
|
WorkflowResponse,
|
||||||
createHook,
|
createHook,
|
||||||
createWorkflow,
|
createWorkflow,
|
||||||
|
transform,
|
||||||
} from "@medusajs/workflows-sdk"
|
} from "@medusajs/workflows-sdk"
|
||||||
|
import { emitEventStep } from "../../common/steps/emit-event"
|
||||||
import { updateProductTagsStep } from "../steps"
|
import { updateProductTagsStep } from "../steps"
|
||||||
|
|
||||||
export type UpdateProductTagsWorkflowInput = {
|
export type UpdateProductTagsWorkflowInput = {
|
||||||
@@ -24,6 +27,25 @@ export const updateProductTagsWorkflow = createWorkflow(
|
|||||||
product_tags: updatedProductTags,
|
product_tags: updatedProductTags,
|
||||||
additional_data: input.additional_data,
|
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, {
|
return new WorkflowResponse(updatedProductTags, {
|
||||||
hooks: [productTagsUpdated],
|
hooks: [productTagsUpdated],
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
import { AdditionalData, ProductTypes } from "@medusajs/types"
|
import { AdditionalData, ProductTypes } from "@medusajs/types"
|
||||||
|
import { ProductTypeWorkflowEvents } from "@medusajs/utils"
|
||||||
import {
|
import {
|
||||||
WorkflowData,
|
WorkflowData,
|
||||||
WorkflowResponse,
|
WorkflowResponse,
|
||||||
createHook,
|
createHook,
|
||||||
createWorkflow,
|
createWorkflow,
|
||||||
|
transform,
|
||||||
} from "@medusajs/workflows-sdk"
|
} from "@medusajs/workflows-sdk"
|
||||||
|
import { emitEventStep } from "../../common/steps/emit-event"
|
||||||
import { updateProductTypesStep } from "../steps"
|
import { updateProductTypesStep } from "../steps"
|
||||||
|
|
||||||
type UpdateProductTypesWorkflowInput = {
|
type UpdateProductTypesWorkflowInput = {
|
||||||
@@ -25,6 +28,24 @@ export const updateProductTypesWorkflow = createWorkflow(
|
|||||||
additional_data: input.additional_data,
|
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, {
|
return new WorkflowResponse(updatedProductTypes, {
|
||||||
hooks: [productTypesUpdated],
|
hooks: [productTypesUpdated],
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -50,6 +50,24 @@ export const ProductWorkflowEvents = {
|
|||||||
DELETED: "product.deleted",
|
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 = {
|
export const InviteWorkflowEvents = {
|
||||||
ACCEPTED: "invite.accepted",
|
ACCEPTED: "invite.accepted",
|
||||||
CREATED: "invite.created",
|
CREATED: "invite.created",
|
||||||
|
|||||||
Reference in New Issue
Block a user