chore(core-flows): [1] export types and types, add basic TSDocs (#8504)

This PR exports types and steps from the core-flows package, and adds simple TSDocs for workflows / steps. This is essential for the workflows reference.

PR 1/n
This commit is contained in:
Shahed Nasser authored and GitHub committed 2024-08-08 13:15:44 +00:00
1 parent fe200e0bb3
commit 73cc66905a
31 files changed
+130 -47

No files matched your search

@@ -2,11 +2,14 @@ import { CreateApiKeyDTO, IApiKeyModuleService } from "@medusajs/types"
import { ModuleRegistrationName } from "@medusajs/utils" import { ModuleRegistrationName } from "@medusajs/utils"
import { StepResponse, createStep } from "@medusajs/workflows-sdk" import { StepResponse, createStep } from "@medusajs/workflows-sdk"
type CreateApiKeysStepInput = { export type CreateApiKeysStepInput = {
api_keys: CreateApiKeyDTO[] api_keys: CreateApiKeyDTO[]
} }
export const createApiKeysStepId = "create-api-keys" export const createApiKeysStepId = "create-api-keys"
/**
* This step creates one or more API keys.
*/
export const createApiKeysStep = createStep( export const createApiKeysStep = createStep(
createApiKeysStepId, createApiKeysStepId,
async (data: CreateApiKeysStepInput, { container }) => { async (data: CreateApiKeysStepInput, { container }) => {
@@ -3,6 +3,9 @@ import { ModuleRegistrationName } from "@medusajs/utils"
import { StepResponse, createStep } from "@medusajs/workflows-sdk" import { StepResponse, createStep } from "@medusajs/workflows-sdk"
export const deleteApiKeysStepId = "delete-api-keys" export const deleteApiKeysStepId = "delete-api-keys"
/**
* This step deletes one or more API keys.
*/
export const deleteApiKeysStep = createStep( export const deleteApiKeysStep = createStep(
{ name: deleteApiKeysStepId, noCompensation: true }, { name: deleteApiKeysStepId, noCompensation: true },
async (ids: string[], { container }) => { async (ids: string[], { container }) => {
@@ -3,6 +3,9 @@ import { ContainerRegistrationKeys, Modules, promiseAll } from "@medusajs/utils"
import { StepResponse, createStep } from "@medusajs/workflows-sdk" import { StepResponse, createStep } from "@medusajs/workflows-sdk"
export const linkSalesChannelsToApiKeyStepId = "link-sales-channels-to-api-key" export const linkSalesChannelsToApiKeyStepId = "link-sales-channels-to-api-key"
/**
* This step links sales channels to API keys.
*/
export const linkSalesChannelsToApiKeyStep = createStep( export const linkSalesChannelsToApiKeyStep = createStep(
linkSalesChannelsToApiKeyStepId, linkSalesChannelsToApiKeyStepId,
async (input: LinkWorkflowInput, { container }) => { async (input: LinkWorkflowInput, { container }) => {
@@ -6,12 +6,15 @@ import {
import { ModuleRegistrationName } from "@medusajs/utils" import { ModuleRegistrationName } from "@medusajs/utils"
import { StepResponse, createStep } from "@medusajs/workflows-sdk" import { StepResponse, createStep } from "@medusajs/workflows-sdk"
type RevokeApiKeysStepInput = { export type RevokeApiKeysStepInput = {
selector: FilterableApiKeyProps selector: FilterableApiKeyProps
revoke: RevokeApiKeyDTO revoke: RevokeApiKeyDTO
} }
export const revokeApiKeysStepId = "revoke-api-keys" export const revokeApiKeysStepId = "revoke-api-keys"
/**
* This step revokes one or more API keys.
*/
export const revokeApiKeysStep = createStep( export const revokeApiKeysStep = createStep(
{ name: revokeApiKeysStepId, noCompensation: true }, { name: revokeApiKeysStepId, noCompensation: true },
async (data: RevokeApiKeysStepInput, { container }) => { async (data: RevokeApiKeysStepInput, { container }) => {
@@ -9,12 +9,15 @@ import {
} from "@medusajs/utils" } from "@medusajs/utils"
import { StepResponse, createStep } from "@medusajs/workflows-sdk" import { StepResponse, createStep } from "@medusajs/workflows-sdk"
type UpdateApiKeysStepInput = { export type UpdateApiKeysStepInput = {
selector: FilterableApiKeyProps selector: FilterableApiKeyProps
update: UpdateApiKeyDTO update: UpdateApiKeyDTO
} }
export const updateApiKeysStepId = "update-api-keys" export const updateApiKeysStepId = "update-api-keys"
/**
* This step updates one or more API keys.
*/
export const updateApiKeysStep = createStep( export const updateApiKeysStep = createStep(
updateApiKeysStepId, updateApiKeysStepId,
async (data: UpdateApiKeysStepInput, { container }) => { async (data: UpdateApiKeysStepInput, { container }) => {
@@ -6,14 +6,17 @@ import {
} from "@medusajs/utils" } from "@medusajs/utils"
import { StepResponse, createStep } from "@medusajs/workflows-sdk" import { StepResponse, createStep } from "@medusajs/workflows-sdk"
interface StepInput { export interface ValidateSalesChannelsExistStepInput {
sales_channel_ids: string[] sales_channel_ids: string[]
} }
export const validateSalesChannelsExistStepId = "validate-sales-channels-exist" export const validateSalesChannelsExistStepId = "validate-sales-channels-exist"
/**
* This step validates that a sales channel exists before linking it to an API key.
*/
export const validateSalesChannelsExistStep = createStep( export const validateSalesChannelsExistStep = createStep(
validateSalesChannelsExistStepId, validateSalesChannelsExistStepId,
async (data: StepInput, { container }) => { async (data: ValidateSalesChannelsExistStepInput, { container }) => {
const salesChannelModuleService = const salesChannelModuleService =
container.resolve<ISalesChannelModuleService>( container.resolve<ISalesChannelModuleService>(
ModuleRegistrationName.SALES_CHANNEL ModuleRegistrationName.SALES_CHANNEL
@@ -6,12 +6,15 @@ import {
} from "@medusajs/workflows-sdk" } from "@medusajs/workflows-sdk"
import { createApiKeysStep } from "../steps" import { createApiKeysStep } from "../steps"
type WorkflowInput = { api_keys: CreateApiKeyDTO[] } export type CreateApiKeysWorkflowInput = { api_keys: CreateApiKeyDTO[] }
export const createApiKeysWorkflowId = "create-api-keys" export const createApiKeysWorkflowId = "create-api-keys"
/**
* This workflow creates one or more API keys.
*/
export const createApiKeysWorkflow = createWorkflow( export const createApiKeysWorkflow = createWorkflow(
createApiKeysWorkflowId, createApiKeysWorkflowId,
(input: WorkflowData<WorkflowInput>): WorkflowResponse<ApiKeyDTO[]> => { (input: WorkflowData<CreateApiKeysWorkflowInput>): WorkflowResponse<ApiKeyDTO[]> => {
return new WorkflowResponse(createApiKeysStep(input)) return new WorkflowResponse(createApiKeysStep(input))
} }
) )
@@ -3,12 +3,15 @@ import { removeRemoteLinkStep } from "../../common/steps/remove-remote-links"
import { deleteApiKeysStep } from "../steps" import { deleteApiKeysStep } from "../steps"
import { Modules } from "@medusajs/utils" import { Modules } from "@medusajs/utils"
type WorkflowInput = { ids: string[] } export type DeleteApiKeysWorkflowInput = { ids: string[] }
export const deleteApiKeysWorkflowId = "delete-api-keys" export const deleteApiKeysWorkflowId = "delete-api-keys"
/**
* This workflow deletes one or more API keys.
*/
export const deleteApiKeysWorkflow = createWorkflow( export const deleteApiKeysWorkflow = createWorkflow(
deleteApiKeysWorkflowId, deleteApiKeysWorkflowId,
(input: WorkflowData<WorkflowInput>): WorkflowData<void> => { (input: WorkflowData<DeleteApiKeysWorkflowInput>): WorkflowData<void> => {
deleteApiKeysStep(input.ids) deleteApiKeysStep(input.ids)
// Please note, the ids here should be publishable key IDs // Please note, the ids here should be publishable key IDs
@@ -7,6 +7,9 @@ import {
export const linkSalesChannelsToApiKeyWorkflowId = export const linkSalesChannelsToApiKeyWorkflowId =
"link-sales-channels-to-api-key" "link-sales-channels-to-api-key"
/**
* This workflow links sales channels to API keys.
*/
export const linkSalesChannelsToApiKeyWorkflow = createWorkflow( export const linkSalesChannelsToApiKeyWorkflow = createWorkflow(
linkSalesChannelsToApiKeyWorkflowId, linkSalesChannelsToApiKeyWorkflowId,
(input: WorkflowData<LinkWorkflowInput>) => { (input: WorkflowData<LinkWorkflowInput>) => {
@@ -10,17 +10,18 @@ import {
} from "@medusajs/workflows-sdk" } from "@medusajs/workflows-sdk"
import { revokeApiKeysStep } from "../steps" import { revokeApiKeysStep } from "../steps"
type RevokeApiKeysStepInput = { export type RevokeApiKeysWorkflowInput = {
selector: FilterableApiKeyProps selector: FilterableApiKeyProps
revoke: RevokeApiKeyDTO revoke: RevokeApiKeyDTO
} }
type WorkflowInput = RevokeApiKeysStepInput
export const revokeApiKeysWorkflowId = "revoke-api-keys" export const revokeApiKeysWorkflowId = "revoke-api-keys"
/**
* This workflow revokes one or more API keys.
*/
export const revokeApiKeysWorkflow = createWorkflow( export const revokeApiKeysWorkflow = createWorkflow(
revokeApiKeysWorkflowId, revokeApiKeysWorkflowId,
(input: WorkflowData<WorkflowInput>): WorkflowResponse<ApiKeyDTO[]> => { (input: WorkflowData<RevokeApiKeysWorkflowInput>): WorkflowResponse<ApiKeyDTO[]> => {
return new WorkflowResponse(revokeApiKeysStep(input)) return new WorkflowResponse(revokeApiKeysStep(input))
} }
) )
@@ -10,17 +10,18 @@ import {
} from "@medusajs/workflows-sdk" } from "@medusajs/workflows-sdk"
import { updateApiKeysStep } from "../steps" import { updateApiKeysStep } from "../steps"
type UpdateApiKeysStepInput = { export type UpdateApiKeysWorkflowInput = {
selector: FilterableApiKeyProps selector: FilterableApiKeyProps
update: UpdateApiKeyDTO update: UpdateApiKeyDTO
} }
type WorkflowInput = UpdateApiKeysStepInput
export const updateApiKeysWorkflowId = "update-api-keys" export const updateApiKeysWorkflowId = "update-api-keys"
/**
* This workflow creates one or more API keys.
*/
export const updateApiKeysWorkflow = createWorkflow( export const updateApiKeysWorkflow = createWorkflow(
updateApiKeysWorkflowId, updateApiKeysWorkflowId,
(input: WorkflowData<WorkflowInput>): WorkflowResponse<ApiKeyDTO[]> => { (input: WorkflowData<UpdateApiKeysWorkflowInput>): WorkflowResponse<ApiKeyDTO[]> => {
return new WorkflowResponse(updateApiKeysStep(input)) return new WorkflowResponse(updateApiKeysStep(input))
} }
) )
@@ -3,16 +3,19 @@ import { createStep, StepResponse } from "@medusajs/workflows-sdk"
import { IAuthModuleService } from "@medusajs/types" import { IAuthModuleService } from "@medusajs/types"
import { isDefined, ModuleRegistrationName } from "@medusajs/utils" import { isDefined, ModuleRegistrationName } from "@medusajs/utils"
type StepInput = { export type SetAuthAppMetadataStepInput = {
authIdentityId: string authIdentityId: string
actorType: string actorType: string
value: string value: string
} }
export const setAuthAppMetadataStepId = "set-auth-app-metadata" export const setAuthAppMetadataStepId = "set-auth-app-metadata"
/**
* This step sets the `app_metadata` property of an auth identity.
*/
export const setAuthAppMetadataStep = createStep( export const setAuthAppMetadataStep = createStep(
setAuthAppMetadataStepId, setAuthAppMetadataStepId,
async (data: StepInput, { container }) => { async (data: SetAuthAppMetadataStepInput, { container }) => {
const service = container.resolve<IAuthModuleService>( const service = container.resolve<IAuthModuleService>(
ModuleRegistrationName.AUTH ModuleRegistrationName.AUTH
) )
@@ -11,6 +11,9 @@ import { dismissRemoteLinkStep } from "../steps/dismiss-remote-links"
import { updateRemoteLinksStep } from "../steps/update-remote-links" import { updateRemoteLinksStep } from "../steps/update-remote-links"
export const batchLinksWorkflowId = "batch-links" export const batchLinksWorkflowId = "batch-links"
/**
* This workflow manages one or more links to create, update, or dismiss them.
*/
export const batchLinksWorkflow = createWorkflow( export const batchLinksWorkflow = createWorkflow(
batchLinksWorkflowId, batchLinksWorkflowId,
( (
@@ -7,6 +7,9 @@ import {
import { createRemoteLinkStep } from "../steps/create-remote-links" import { createRemoteLinkStep } from "../steps/create-remote-links"
export const createLinksWorkflowId = "create-link" export const createLinksWorkflowId = "create-link"
/**
* This workflow creates one or more links between records.
*/
export const createLinksWorkflow = createWorkflow( export const createLinksWorkflow = createWorkflow(
createLinksWorkflowId, createLinksWorkflowId,
(input: WorkflowData<LinkDefinition[]>) => { (input: WorkflowData<LinkDefinition[]>) => {
@@ -7,6 +7,9 @@ import {
import { dismissRemoteLinkStep } from "../steps/dismiss-remote-links" import { dismissRemoteLinkStep } from "../steps/dismiss-remote-links"
export const dismissLinksWorkflowId = "dismiss-link" export const dismissLinksWorkflowId = "dismiss-link"
/**
* This workflow dismisses one or more links between records.
*/
export const dismissLinksWorkflow = createWorkflow( export const dismissLinksWorkflow = createWorkflow(
dismissLinksWorkflowId, dismissLinksWorkflowId,
(input: WorkflowData<LinkDefinition[]>) => { (input: WorkflowData<LinkDefinition[]>) => {
@@ -7,6 +7,9 @@ import {
import { updateRemoteLinksStep } from "../steps/update-remote-links" import { updateRemoteLinksStep } from "../steps/update-remote-links"
export const updateLinksWorkflowId = "update-link" export const updateLinksWorkflowId = "update-link"
/**
* This workflow updates one or more links between records.
*/
export const updateLinksWorkflow = createWorkflow( export const updateLinksWorkflow = createWorkflow(
updateLinksWorkflowId, updateLinksWorkflowId,
(input: WorkflowData<LinkDefinition[]>) => { (input: WorkflowData<LinkDefinition[]>) => {
@@ -6,6 +6,9 @@ import { ModuleRegistrationName } from "@medusajs/utils"
import { StepResponse, createStep } from "@medusajs/workflows-sdk" import { StepResponse, createStep } from "@medusajs/workflows-sdk"
export const createCustomerAddressesStepId = "create-customer-addresses" export const createCustomerAddressesStepId = "create-customer-addresses"
/**
* This step creates one or more customer addresses.
*/
export const createCustomerAddressesStep = createStep( export const createCustomerAddressesStep = createStep(
createCustomerAddressesStepId, createCustomerAddressesStepId,
async (data: CreateCustomerAddressDTO[], { container }) => { async (data: CreateCustomerAddressDTO[], { container }) => {
@@ -3,6 +3,9 @@ import { ModuleRegistrationName } from "@medusajs/utils"
import { StepResponse, createStep } from "@medusajs/workflows-sdk" import { StepResponse, createStep } from "@medusajs/workflows-sdk"
export const createCustomersStepId = "create-customers" export const createCustomersStepId = "create-customers"
/**
* This step creates one or more customers.
*/
export const createCustomersStep = createStep( export const createCustomersStep = createStep(
createCustomersStepId, createCustomersStepId,
async (data: CreateCustomerDTO[], { container }) => { async (data: CreateCustomerDTO[], { container }) => {
@@ -2,11 +2,13 @@ import { ICustomerModuleService } from "@medusajs/types"
import { ModuleRegistrationName } from "@medusajs/utils" import { ModuleRegistrationName } from "@medusajs/utils"
import { createStep, StepResponse } from "@medusajs/workflows-sdk" import { createStep, StepResponse } from "@medusajs/workflows-sdk"
type DeleteCustomerAddressStepInput = string[]
export const deleteCustomerAddressesStepId = "delete-customer-addresses" export const deleteCustomerAddressesStepId = "delete-customer-addresses"
/**
* This step deletes one or more customer addresses.
*/
export const deleteCustomerAddressesStep = createStep( export const deleteCustomerAddressesStep = createStep(
deleteCustomerAddressesStepId, deleteCustomerAddressesStepId,
async (ids: DeleteCustomerAddressStepInput, { container }) => { async (ids: string[], { container }) => {
const service = container.resolve<ICustomerModuleService>( const service = container.resolve<ICustomerModuleService>(
ModuleRegistrationName.CUSTOMER ModuleRegistrationName.CUSTOMER
) )
@@ -2,12 +2,13 @@ import { ICustomerModuleService } from "@medusajs/types"
import { ModuleRegistrationName } from "@medusajs/utils" import { ModuleRegistrationName } from "@medusajs/utils"
import { createStep, StepResponse } from "@medusajs/workflows-sdk" import { createStep, StepResponse } from "@medusajs/workflows-sdk"
type DeleteCustomerStepInput = string[]
export const deleteCustomersStepId = "delete-customers" export const deleteCustomersStepId = "delete-customers"
/**
* This step deletes one or more customers.
*/
export const deleteCustomersStep = createStep( export const deleteCustomersStep = createStep(
deleteCustomersStepId, deleteCustomersStepId,
async (ids: DeleteCustomerStepInput, { container }) => { async (ids: string[], { container }) => {
const service = container.resolve<ICustomerModuleService>( const service = container.resolve<ICustomerModuleService>(
ModuleRegistrationName.CUSTOMER ModuleRegistrationName.CUSTOMER
) )
@@ -8,7 +8,7 @@ import { ModuleRegistrationName, isDefined } from "@medusajs/utils"
import { createStep } from "@medusajs/workflows-sdk" import { createStep } from "@medusajs/workflows-sdk"
import { unsetForCreate, unsetForUpdate } from "./utils" import { unsetForCreate, unsetForUpdate } from "./utils"
type StepInput = { export type MaybeUnsetDefaultBillingAddressStepInput = {
create?: CreateCustomerAddressDTO[] create?: CreateCustomerAddressDTO[]
update?: { update?: {
selector: FilterableCustomerAddressProps selector: FilterableCustomerAddressProps
@@ -18,9 +18,12 @@ type StepInput = {
export const maybeUnsetDefaultBillingAddressesStepId = export const maybeUnsetDefaultBillingAddressesStepId =
"maybe-unset-default-billing-customer-addresses" "maybe-unset-default-billing-customer-addresses"
/**
* This step unsets the `is_default_billing` property of one or more addresses.
*/
export const maybeUnsetDefaultBillingAddressesStep = createStep( export const maybeUnsetDefaultBillingAddressesStep = createStep(
maybeUnsetDefaultBillingAddressesStepId, maybeUnsetDefaultBillingAddressesStepId,
async (data: StepInput, { container }) => { async (data: MaybeUnsetDefaultBillingAddressStepInput, { container }) => {
const customerModuleService = container.resolve<ICustomerModuleService>( const customerModuleService = container.resolve<ICustomerModuleService>(
ModuleRegistrationName.CUSTOMER ModuleRegistrationName.CUSTOMER
) )
@@ -8,7 +8,7 @@ import { ModuleRegistrationName, isDefined } from "@medusajs/utils"
import { createStep } from "@medusajs/workflows-sdk" import { createStep } from "@medusajs/workflows-sdk"
import { unsetForCreate, unsetForUpdate } from "./utils" import { unsetForCreate, unsetForUpdate } from "./utils"
type StepInput = { export type MaybeUnsetDefaultShippingAddressesStepInput = {
create?: CreateCustomerAddressDTO[] create?: CreateCustomerAddressDTO[]
update?: { update?: {
selector: FilterableCustomerAddressProps selector: FilterableCustomerAddressProps
@@ -18,9 +18,12 @@ type StepInput = {
export const maybeUnsetDefaultShippingAddressesStepId = export const maybeUnsetDefaultShippingAddressesStepId =
"maybe-unset-default-shipping-customer-addresses" "maybe-unset-default-shipping-customer-addresses"
/**
* This step unsets the `is_default_shipping` property of one or more addresses.
*/
export const maybeUnsetDefaultShippingAddressesStep = createStep( export const maybeUnsetDefaultShippingAddressesStep = createStep(
maybeUnsetDefaultShippingAddressesStepId, maybeUnsetDefaultShippingAddressesStepId,
async (data: StepInput, { container }) => { async (data: MaybeUnsetDefaultShippingAddressesStepInput, { container }) => {
const customerModuleService = container.resolve<ICustomerModuleService>( const customerModuleService = container.resolve<ICustomerModuleService>(
ModuleRegistrationName.CUSTOMER ModuleRegistrationName.CUSTOMER
) )
@@ -10,12 +10,15 @@ import {
} from "@medusajs/utils" } from "@medusajs/utils"
import { StepResponse, createStep } from "@medusajs/workflows-sdk" import { StepResponse, createStep } from "@medusajs/workflows-sdk"
type UpdateCustomerAddresseStepInput = { export type UpdateCustomerAddresseStepInput = {
selector: FilterableCustomerAddressProps selector: FilterableCustomerAddressProps
update: UpdateCustomerAddressDTO update: UpdateCustomerAddressDTO
} }
export const updateCustomerAddresseStepId = "update-customer-addresses" export const updateCustomerAddresseStepId = "update-customer-addresses"
/**
* This step updates one or more customer addresses.
*/
export const updateCustomerAddressesStep = createStep( export const updateCustomerAddressesStep = createStep(
updateCustomerAddresseStepId, updateCustomerAddresseStepId,
async (data: UpdateCustomerAddresseStepInput, { container }) => { async (data: UpdateCustomerAddresseStepInput, { container }) => {
@@ -10,12 +10,15 @@ import {
} from "@medusajs/utils" } from "@medusajs/utils"
import { StepResponse, createStep } from "@medusajs/workflows-sdk" import { StepResponse, createStep } from "@medusajs/workflows-sdk"
type UpdateCustomersStepInput = { export type UpdateCustomersStepInput = {
selector: FilterableCustomerProps selector: FilterableCustomerProps
update: CustomerUpdatableFields update: CustomerUpdatableFields
} }
export const updateCustomersStepId = "update-customer" export const updateCustomersStepId = "update-customer"
/**
* This step updates one or more customers.
*/
export const updateCustomersStep = createStep( export const updateCustomersStep = createStep(
updateCustomersStepId, updateCustomersStepId,
async (data: UpdateCustomersStepInput, { container }) => { async (data: UpdateCustomersStepInput, { container }) => {
@@ -13,12 +13,15 @@ import {
maybeUnsetDefaultShippingAddressesStep, maybeUnsetDefaultShippingAddressesStep,
} from "../steps" } from "../steps"
type WorkflowInput = { addresses: CreateCustomerAddressDTO[] } & AdditionalData export type CreateCustomerAddressesWorkflowInput = { addresses: CreateCustomerAddressDTO[] } & AdditionalData
export const createCustomerAddressesWorkflowId = "create-customer-addresses" export const createCustomerAddressesWorkflowId = "create-customer-addresses"
/**
* This workflow creates one or more customer address.
*/
export const createCustomerAddressesWorkflow = createWorkflow( export const createCustomerAddressesWorkflow = createWorkflow(
createCustomerAddressesWorkflowId, createCustomerAddressesWorkflowId,
(input: WorkflowData<WorkflowInput>) => { (input: WorkflowData<CreateCustomerAddressesWorkflowInput>) => {
const unsetInput = transform(input, (data) => ({ const unsetInput = transform(input, (data) => ({
create: data.addresses, create: data.addresses,
})) }))
@@ -8,15 +8,18 @@ import { createCustomersStep } from "../steps"
import { transform } from "@medusajs/workflows-sdk" import { transform } from "@medusajs/workflows-sdk"
import { setAuthAppMetadataStep } from "../../auth" import { setAuthAppMetadataStep } from "../../auth"
type WorkflowInput = { export type CreateCustomerAccountWorkflowInput = {
authIdentityId: string authIdentityId: string
customersData: CreateCustomerDTO customersData: CreateCustomerDTO
} }
export const createCustomerAccountWorkflowId = "create-customer-account" export const createCustomerAccountWorkflowId = "create-customer-account"
/**
* This workflow creates an authentication account for a customer.
*/
export const createCustomerAccountWorkflow = createWorkflow( export const createCustomerAccountWorkflow = createWorkflow(
createCustomerAccountWorkflowId, createCustomerAccountWorkflowId,
(input: WorkflowData<WorkflowInput>): WorkflowResponse<CustomerDTO> => { (input: WorkflowData<CreateCustomerAccountWorkflowInput>): WorkflowResponse<CustomerDTO> => {
const customers = createCustomersStep([input.customersData]) const customers = createCustomersStep([input.customersData])
const customer = transform( const customer = transform(
@@ -7,13 +7,15 @@ import {
} from "@medusajs/workflows-sdk" } from "@medusajs/workflows-sdk"
import { createCustomersStep } from "../steps" import { createCustomersStep } from "../steps"
type WorkflowInput = { customersData: CreateCustomerDTO[] } & AdditionalData export type CreateCustomersWorkflowInput = { customersData: CreateCustomerDTO[] } & AdditionalData
export const createCustomersWorkflowId = "create-customers" export const createCustomersWorkflowId = "create-customers"
/**
* This workflow creates one or more customers.
*/
export const createCustomersWorkflow = createWorkflow( export const createCustomersWorkflow = createWorkflow(
createCustomersWorkflowId, createCustomersWorkflowId,
(input: WorkflowData<WorkflowInput>) => { (input: WorkflowData<CreateCustomersWorkflowInput>) => {
const createdCustomers = createCustomersStep(input.customersData) const createdCustomers = createCustomersStep(input.customersData)
const customersCreated = createHook("customersCreated", { const customersCreated = createHook("customersCreated", {
customers: createdCustomers, customers: createdCustomers,
@@ -6,12 +6,15 @@ import {
} from "@medusajs/workflows-sdk" } from "@medusajs/workflows-sdk"
import { deleteCustomerAddressesStep } from "../steps" import { deleteCustomerAddressesStep } from "../steps"
type WorkflowInput = { ids: string[] } export type DeleteCustomerAddressesWorkflowInput = { ids: string[] }
export const deleteCustomerAddressesWorkflowId = "delete-customer-addresses" export const deleteCustomerAddressesWorkflowId = "delete-customer-addresses"
/**
* This workflow deletes one or more customer addresses.
*/
export const deleteCustomerAddressesWorkflow = createWorkflow( export const deleteCustomerAddressesWorkflow = createWorkflow(
deleteCustomerAddressesWorkflowId, deleteCustomerAddressesWorkflowId,
(input: WorkflowData<WorkflowInput>) => { (input: WorkflowData<DeleteCustomerAddressesWorkflowInput>) => {
const deletedAddresses = deleteCustomerAddressesStep(input.ids) const deletedAddresses = deleteCustomerAddressesStep(input.ids)
const addressesDeleted = createHook("addressesDeleted", { const addressesDeleted = createHook("addressesDeleted", {
ids: input.ids, ids: input.ids,
@@ -6,12 +6,15 @@ import {
} from "@medusajs/workflows-sdk" } from "@medusajs/workflows-sdk"
import { deleteCustomersStep } from "../steps" import { deleteCustomersStep } from "../steps"
type WorkflowInput = { ids: string[] } export type DeleteCustomersWorkflowInput = { ids: string[] }
export const deleteCustomersWorkflowId = "delete-customers" export const deleteCustomersWorkflowId = "delete-customers"
/**
* This workflow deletes one or more customers.
*/
export const deleteCustomersWorkflow = createWorkflow( export const deleteCustomersWorkflow = createWorkflow(
deleteCustomersWorkflowId, deleteCustomersWorkflowId,
(input: WorkflowData<WorkflowInput>) => { (input: WorkflowData<DeleteCustomersWorkflowInput>) => {
const deletedCustomers = deleteCustomersStep(input.ids) const deletedCustomers = deleteCustomersStep(input.ids)
const customersDeleted = createHook("customersDeleted", { const customersDeleted = createHook("customersDeleted", {
ids: input.ids, ids: input.ids,
@@ -17,15 +17,18 @@ import {
updateCustomerAddressesStep, updateCustomerAddressesStep,
} from "../steps" } from "../steps"
type WorkflowInput = { export type UpdateCustomerAddressesWorkflowInput = {
selector: FilterableCustomerAddressProps selector: FilterableCustomerAddressProps
update: UpdateCustomerAddressDTO update: UpdateCustomerAddressDTO
} & AdditionalData } & AdditionalData
export const updateCustomerAddressesWorkflowId = "update-customer-addresses" export const updateCustomerAddressesWorkflowId = "update-customer-addresses"
/**
* This workflow updates one or more customer addresses.
*/
export const updateCustomerAddressesWorkflow = createWorkflow( export const updateCustomerAddressesWorkflow = createWorkflow(
updateCustomerAddressesWorkflowId, updateCustomerAddressesWorkflowId,
(input: WorkflowData<WorkflowInput>) => { (input: WorkflowData<UpdateCustomerAddressesWorkflowInput>) => {
const unsetInput = transform(input, (data) => ({ const unsetInput = transform(input, (data) => ({
update: data, update: data,
})) }))
@@ -11,17 +11,18 @@ import {
} from "@medusajs/workflows-sdk" } from "@medusajs/workflows-sdk"
import { updateCustomersStep } from "../steps" import { updateCustomersStep } from "../steps"
type UpdateCustomersStepInput = { export type UpdateCustomersWorkflowInput = {
selector: FilterableCustomerProps selector: FilterableCustomerProps
update: CustomerUpdatableFields update: CustomerUpdatableFields
} & AdditionalData } & AdditionalData
type WorkflowInput = UpdateCustomersStepInput
export const updateCustomersWorkflowId = "update-customers" export const updateCustomersWorkflowId = "update-customers"
/**
* This workflow updates one or more customers.
*/
export const updateCustomersWorkflow = createWorkflow( export const updateCustomersWorkflow = createWorkflow(
updateCustomersWorkflowId, updateCustomersWorkflowId,
(input: WorkflowData<WorkflowInput>) => { (input: WorkflowData<UpdateCustomersWorkflowInput>) => {
const updatedCustomers = updateCustomersStep(input) const updatedCustomers = updateCustomersStep(input)
const customersUpdated = createHook("customersUpdated", { const customersUpdated = createHook("customersUpdated", {
customers: updatedCustomers, customers: updatedCustomers,