feature: add hooks to customers modules workflows (#8442)
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
import { CreateCustomerAddressDTO, CustomerAddressDTO } from "@medusajs/types"
|
||||
import { AdditionalData, CreateCustomerAddressDTO } from "@medusajs/types"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createHook,
|
||||
createWorkflow,
|
||||
parallelize,
|
||||
transform,
|
||||
@@ -12,14 +13,12 @@ import {
|
||||
maybeUnsetDefaultShippingAddressesStep,
|
||||
} from "../steps"
|
||||
|
||||
type WorkflowInput = { addresses: CreateCustomerAddressDTO[] }
|
||||
type WorkflowInput = { addresses: CreateCustomerAddressDTO[] } & AdditionalData
|
||||
|
||||
export const createCustomerAddressesWorkflowId = "create-customer-addresses"
|
||||
export const createCustomerAddressesWorkflow = createWorkflow(
|
||||
createCustomerAddressesWorkflowId,
|
||||
(
|
||||
input: WorkflowData<WorkflowInput>
|
||||
): WorkflowResponse<CustomerAddressDTO[]> => {
|
||||
(input: WorkflowData<WorkflowInput>) => {
|
||||
const unsetInput = transform(input, (data) => ({
|
||||
create: data.addresses,
|
||||
}))
|
||||
@@ -29,6 +28,14 @@ export const createCustomerAddressesWorkflow = createWorkflow(
|
||||
maybeUnsetDefaultBillingAddressesStep(unsetInput)
|
||||
)
|
||||
|
||||
return new WorkflowResponse(createCustomerAddressesStep(input.addresses))
|
||||
const createdAddresses = createCustomerAddressesStep(input.addresses)
|
||||
const addressesCreated = createHook("addressesCreated", {
|
||||
addresses: createdAddresses,
|
||||
additional_data: input.additional_data,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(createdAddresses, {
|
||||
hooks: [addressesCreated],
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1,17 +1,27 @@
|
||||
import { CustomerDTO, CreateCustomerDTO } from "@medusajs/types"
|
||||
import { CreateCustomerDTO, AdditionalData } from "@medusajs/types"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createHook,
|
||||
createWorkflow,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { createCustomersStep } from "../steps"
|
||||
|
||||
type WorkflowInput = { customersData: CreateCustomerDTO[] }
|
||||
type WorkflowInput = { customersData: CreateCustomerDTO[] } & AdditionalData
|
||||
|
||||
export const createCustomersWorkflowId = "create-customers"
|
||||
|
||||
export const createCustomersWorkflow = createWorkflow(
|
||||
createCustomersWorkflowId,
|
||||
(input: WorkflowData<WorkflowInput>): WorkflowResponse<CustomerDTO[]> => {
|
||||
return new WorkflowResponse(createCustomersStep(input.customersData))
|
||||
(input: WorkflowData<WorkflowInput>) => {
|
||||
const createdCustomers = createCustomersStep(input.customersData)
|
||||
const customersCreated = createHook("customersCreated", {
|
||||
customers: createdCustomers,
|
||||
additional_data: input.additional_data,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(createdCustomers, {
|
||||
hooks: [customersCreated],
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
import { WorkflowData, createWorkflow } from "@medusajs/workflows-sdk"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createHook,
|
||||
createWorkflow,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { deleteCustomerAddressesStep } from "../steps"
|
||||
|
||||
type WorkflowInput = { ids: string[] }
|
||||
@@ -6,7 +11,14 @@ type WorkflowInput = { ids: string[] }
|
||||
export const deleteCustomerAddressesWorkflowId = "delete-customer-addresses"
|
||||
export const deleteCustomerAddressesWorkflow = createWorkflow(
|
||||
deleteCustomerAddressesWorkflowId,
|
||||
(input: WorkflowData<WorkflowInput>): WorkflowData<void> => {
|
||||
return deleteCustomerAddressesStep(input.ids)
|
||||
(input: WorkflowData<WorkflowInput>) => {
|
||||
const deletedAddresses = deleteCustomerAddressesStep(input.ids)
|
||||
const addressesDeleted = createHook("addressesDeleted", {
|
||||
ids: input.ids,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(deletedAddresses, {
|
||||
hooks: [addressesDeleted],
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
import { WorkflowData, createWorkflow } from "@medusajs/workflows-sdk"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createHook,
|
||||
createWorkflow,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { deleteCustomersStep } from "../steps"
|
||||
|
||||
type WorkflowInput = { ids: string[] }
|
||||
@@ -6,7 +11,14 @@ type WorkflowInput = { ids: string[] }
|
||||
export const deleteCustomersWorkflowId = "delete-customers"
|
||||
export const deleteCustomersWorkflow = createWorkflow(
|
||||
deleteCustomersWorkflowId,
|
||||
(input: WorkflowData<WorkflowInput>): WorkflowData<void> => {
|
||||
return deleteCustomersStep(input.ids)
|
||||
(input: WorkflowData<WorkflowInput>) => {
|
||||
const deletedCustomers = deleteCustomersStep(input.ids)
|
||||
const customersDeleted = createHook("customersDeleted", {
|
||||
ids: input.ids,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(deletedCustomers, {
|
||||
hooks: [customersDeleted],
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import {
|
||||
FilterableCustomerAddressProps,
|
||||
CustomerAddressDTO,
|
||||
UpdateCustomerAddressDTO,
|
||||
AdditionalData,
|
||||
} from "@medusajs/types"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createHook,
|
||||
createWorkflow,
|
||||
parallelize,
|
||||
transform,
|
||||
@@ -19,14 +20,12 @@ import {
|
||||
type WorkflowInput = {
|
||||
selector: FilterableCustomerAddressProps
|
||||
update: UpdateCustomerAddressDTO
|
||||
}
|
||||
} & AdditionalData
|
||||
|
||||
export const updateCustomerAddressesWorkflowId = "update-customer-addresses"
|
||||
export const updateCustomerAddressesWorkflow = createWorkflow(
|
||||
updateCustomerAddressesWorkflowId,
|
||||
(
|
||||
input: WorkflowData<WorkflowInput>
|
||||
): WorkflowResponse<CustomerAddressDTO[]> => {
|
||||
(input: WorkflowData<WorkflowInput>) => {
|
||||
const unsetInput = transform(input, (data) => ({
|
||||
update: data,
|
||||
}))
|
||||
@@ -36,6 +35,14 @@ export const updateCustomerAddressesWorkflow = createWorkflow(
|
||||
maybeUnsetDefaultBillingAddressesStep(unsetInput)
|
||||
)
|
||||
|
||||
return new WorkflowResponse(updateCustomerAddressesStep(input))
|
||||
const updatedAddresses = updateCustomerAddressesStep(input)
|
||||
const addressesUpdated = createHook("addressesUpdated", {
|
||||
addresses: updatedAddresses,
|
||||
additional_data: input.additional_data,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(updatedAddresses, {
|
||||
hooks: [addressesUpdated],
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import {
|
||||
CustomerDTO,
|
||||
AdditionalData,
|
||||
CustomerUpdatableFields,
|
||||
FilterableCustomerProps,
|
||||
} from "@medusajs/types"
|
||||
import {
|
||||
WorkflowData,
|
||||
WorkflowResponse,
|
||||
createHook,
|
||||
createWorkflow,
|
||||
} from "@medusajs/workflows-sdk"
|
||||
import { updateCustomersStep } from "../steps"
|
||||
@@ -13,14 +14,22 @@ import { updateCustomersStep } from "../steps"
|
||||
type UpdateCustomersStepInput = {
|
||||
selector: FilterableCustomerProps
|
||||
update: CustomerUpdatableFields
|
||||
}
|
||||
} & AdditionalData
|
||||
|
||||
type WorkflowInput = UpdateCustomersStepInput
|
||||
|
||||
export const updateCustomersWorkflowId = "update-customers"
|
||||
export const updateCustomersWorkflow = createWorkflow(
|
||||
updateCustomersWorkflowId,
|
||||
(input: WorkflowData<WorkflowInput>): WorkflowResponse<CustomerDTO[]> => {
|
||||
return new WorkflowResponse(updateCustomersStep(input))
|
||||
(input: WorkflowData<WorkflowInput>) => {
|
||||
const updatedCustomers = updateCustomersStep(input)
|
||||
const customersUpdated = createHook("customersUpdated", {
|
||||
customers: updatedCustomers,
|
||||
additional_data: input.additional_data,
|
||||
})
|
||||
|
||||
return new WorkflowResponse(updatedCustomers, {
|
||||
hooks: [customersUpdated],
|
||||
})
|
||||
}
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user