chore(core-flows): [16] export types and steps, add basic TSDocs (#8527)

This commit is contained in:
Shahed Nasser
2024-08-08 20:03:27 +03:00
committed by GitHub
parent e386216512
commit 8ee3da4644
33 changed files with 131 additions and 36 deletions
@@ -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 createRegionsStepId = "create-regions" export const createRegionsStepId = "create-regions"
/**
* This step creates one or more regions.
*/
export const createRegionsStep = createStep( export const createRegionsStep = createStep(
createRegionsStepId, createRegionsStepId,
async (data: CreateRegionDTO[], { container }) => { async (data: CreateRegionDTO[], { 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 deleteRegionsStepId = "delete-regions" export const deleteRegionsStepId = "delete-regions"
/**
* This step deletes one or more regions.
*/
export const deleteRegionsStep = createStep( export const deleteRegionsStep = createStep(
deleteRegionsStepId, deleteRegionsStepId,
async (ids: string[], { container }) => { async (ids: string[], { container }) => {
@@ -92,6 +92,9 @@ async function getCurrentRegionPaymentProvidersLinks(
export const setRegionsPaymentProvidersStepId = export const setRegionsPaymentProvidersStepId =
"add-region-payment-providers-step" "add-region-payment-providers-step"
/**
* This step sets the payment providers in regions.
*/
export const setRegionsPaymentProvidersStep = createStep( export const setRegionsPaymentProvidersStep = createStep(
setRegionsPaymentProvidersStepId, setRegionsPaymentProvidersStepId,
async (data: SetRegionsPaymentProvidersStepInput, { container }) => { async (data: SetRegionsPaymentProvidersStepInput, { 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 UpdateRegionsStepInput = { export type UpdateRegionsStepInput = {
selector: FilterableRegionProps selector: FilterableRegionProps
update: UpdateRegionDTO update: UpdateRegionDTO
} }
export const updateRegionsStepId = "update-region" export const updateRegionsStepId = "update-region"
/**
* This step updates regions matching the specified filters.
*/
export const updateRegionsStep = createStep( export const updateRegionsStep = createStep(
updateRegionsStepId, updateRegionsStepId,
async (data: UpdateRegionsStepInput, { container }) => { async (data: UpdateRegionsStepInput, { container }) => {
@@ -11,6 +11,9 @@ import { setRegionsPaymentProvidersStep } from "../steps/set-regions-payment-pro
import { createPricePreferencesWorkflow } from "../../pricing" import { createPricePreferencesWorkflow } from "../../pricing"
export const createRegionsWorkflowId = "create-regions" export const createRegionsWorkflowId = "create-regions"
/**
* This workflow creates one or more regions.
*/
export const createRegionsWorkflow = createWorkflow( export const createRegionsWorkflow = createWorkflow(
createRegionsWorkflowId, createRegionsWorkflowId,
( (
@@ -1,12 +1,15 @@
import { WorkflowData, createWorkflow } from "@medusajs/workflows-sdk" import { WorkflowData, createWorkflow } from "@medusajs/workflows-sdk"
import { deleteRegionsStep } from "../steps" import { deleteRegionsStep } from "../steps"
type WorkflowInput = { ids: string[] } export type DeleteRegionsWorkflowInput = { ids: string[] }
export const deleteRegionsWorkflowId = "delete-regions" export const deleteRegionsWorkflowId = "delete-regions"
/**
* This workflow deletes one or more regions.
*/
export const deleteRegionsWorkflow = createWorkflow( export const deleteRegionsWorkflow = createWorkflow(
deleteRegionsWorkflowId, deleteRegionsWorkflowId,
(input: WorkflowData<WorkflowInput>): WorkflowData<void> => { (input: WorkflowData<DeleteRegionsWorkflowInput>): WorkflowData<void> => {
return deleteRegionsStep(input.ids) return deleteRegionsStep(input.ids)
} }
) )
@@ -12,6 +12,9 @@ import { setRegionsPaymentProvidersStep } from "../steps/set-regions-payment-pro
import { updatePricePreferencesWorkflow } from "../../pricing" import { updatePricePreferencesWorkflow } from "../../pricing"
export const updateRegionsWorkflowId = "update-regions" export const updateRegionsWorkflowId = "update-regions"
/**
* This workflow updates regions matching the specified filters.
*/
export const updateRegionsWorkflow = createWorkflow( export const updateRegionsWorkflow = createWorkflow(
updateRegionsWorkflowId, updateRegionsWorkflowId,
( (
@@ -4,6 +4,9 @@ import { StepResponse, createStep } from "@medusajs/workflows-sdk"
import { ModuleRegistrationName } from "@medusajs/utils" import { ModuleRegistrationName } from "@medusajs/utils"
export const createReservationsStepId = "create-reservations-step" export const createReservationsStepId = "create-reservations-step"
/**
* This step creates one or more reservations.
*/
export const createReservationsStep = createStep( export const createReservationsStep = createStep(
createReservationsStepId, createReservationsStepId,
async (data: InventoryTypes.CreateReservationItemInput[], { container }) => { async (data: InventoryTypes.CreateReservationItemInput[], { container }) => {
@@ -5,6 +5,9 @@ import { ModuleRegistrationName } from "@medusajs/utils"
export const deleteReservationsByLineItemsStepId = export const deleteReservationsByLineItemsStepId =
"delete-reservations-by-line-items" "delete-reservations-by-line-items"
/**
* This step deletes reservations by their associated line items.
*/
export const deleteReservationsByLineItemsStep = createStep( export const deleteReservationsByLineItemsStep = createStep(
deleteReservationsByLineItemsStepId, deleteReservationsByLineItemsStepId,
async (ids: string[], { container }) => { async (ids: string[], { container }) => {
@@ -4,6 +4,9 @@ import { IInventoryService } from "@medusajs/types"
import { ModuleRegistrationName } from "@medusajs/utils" import { ModuleRegistrationName } from "@medusajs/utils"
export const deleteReservationsStepId = "delete-reservations" export const deleteReservationsStepId = "delete-reservations"
/**
* This step deletes one or more reservations.
*/
export const deleteReservationsStep = createStep( export const deleteReservationsStep = createStep(
deleteReservationsStepId, deleteReservationsStepId,
async (ids: string[], { container }) => { async (ids: string[], { container }) => {
@@ -8,6 +8,9 @@ import { StepResponse, createStep } from "@medusajs/workflows-sdk"
import { ModuleRegistrationName } from "@medusajs/utils" import { ModuleRegistrationName } from "@medusajs/utils"
export const updateReservationsStepId = "update-reservations-step" export const updateReservationsStepId = "update-reservations-step"
/**
* This step updates one or more reservations.
*/
export const updateReservationsStep = createStep( export const updateReservationsStep = createStep(
updateReservationsStepId, updateReservationsStepId,
async (data: InventoryTypes.UpdateReservationItemInput[], { container }) => { async (data: InventoryTypes.UpdateReservationItemInput[], { container }) => {
@@ -8,6 +8,9 @@ import { WorkflowTypes } from "@medusajs/types"
import { createReservationsStep } from "../steps" import { createReservationsStep } from "../steps"
export const createReservationsWorkflowId = "create-reservations-workflow" export const createReservationsWorkflowId = "create-reservations-workflow"
/**
* This workflow creates one or more reservations.
*/
export const createReservationsWorkflow = createWorkflow( export const createReservationsWorkflow = createWorkflow(
createReservationsWorkflowId, createReservationsWorkflowId,
( (
@@ -2,13 +2,16 @@ import { WorkflowData, createWorkflow } from "@medusajs/workflows-sdk"
import { deleteReservationsByLineItemsStep } from "../steps" import { deleteReservationsByLineItemsStep } from "../steps"
type WorkflowInput = { ids: string[] } export type DeleteReservationByLineItemsWorkflowInput = { ids: string[] }
export const deleteReservationsByLineItemsWorkflowId = export const deleteReservationsByLineItemsWorkflowId =
"delete-reservations-by-line-items" "delete-reservations-by-line-items"
/**
* This workflow deletes reservations by their associated line items.
*/
export const deleteReservationsByLineItemsWorkflow = createWorkflow( export const deleteReservationsByLineItemsWorkflow = createWorkflow(
deleteReservationsByLineItemsWorkflowId, deleteReservationsByLineItemsWorkflowId,
(input: WorkflowData<WorkflowInput>): WorkflowData<void> => { (input: WorkflowData<DeleteReservationByLineItemsWorkflowInput>): WorkflowData<void> => {
return deleteReservationsByLineItemsStep(input.ids) return deleteReservationsByLineItemsStep(input.ids)
} }
) )
@@ -5,6 +5,9 @@ import { deleteReservationsStep } from "../steps"
type WorkflowInput = { ids: string[] } type WorkflowInput = { ids: string[] }
export const deleteReservationsWorkflowId = "delete-reservations" export const deleteReservationsWorkflowId = "delete-reservations"
/**
* This workflow deletes one or more reservations.
*/
export const deleteReservationsWorkflow = createWorkflow( export const deleteReservationsWorkflow = createWorkflow(
deleteReservationsWorkflowId, deleteReservationsWorkflowId,
(input: WorkflowData<WorkflowInput>): WorkflowData<void> => { (input: WorkflowData<WorkflowInput>): WorkflowData<void> => {
@@ -8,6 +8,9 @@ import { WorkflowTypes } from "@medusajs/types"
import { updateReservationsStep } from "../steps" import { updateReservationsStep } from "../steps"
export const updateReservationsWorkflowId = "update-reservations-workflow" export const updateReservationsWorkflowId = "update-reservations-workflow"
/**
* This workflow updates one or more reservations.
*/
export const updateReservationsWorkflow = createWorkflow( export const updateReservationsWorkflow = createWorkflow(
updateReservationsWorkflowId, updateReservationsWorkflowId,
( (
@@ -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 createReturnReasonsStepId = "create-return-reasons" export const createReturnReasonsStepId = "create-return-reasons"
/**
* This step creates one or more return reasons.
*/
export const createReturnReasonsStep = createStep( export const createReturnReasonsStep = createStep(
createReturnReasonsStepId, createReturnReasonsStepId,
async (data: CreateOrderReturnReasonDTO[], { container }) => { async (data: CreateOrderReturnReasonDTO[], { container }) => {
@@ -2,12 +2,13 @@ import { IOrderModuleService } 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 DeleteReturnReasonStepInput = string[]
export const deleteReturnReasonStepId = "delete-return-reasons" export const deleteReturnReasonStepId = "delete-return-reasons"
/**
* This step deletes one or more return reasons.
*/
export const deleteReturnReasonStep = createStep( export const deleteReturnReasonStep = createStep(
deleteReturnReasonStepId, deleteReturnReasonStepId,
async (ids: DeleteReturnReasonStepInput, { container }) => { async (ids: string[], { container }) => {
const service = container.resolve<IOrderModuleService>( const service = container.resolve<IOrderModuleService>(
ModuleRegistrationName.ORDER ModuleRegistrationName.ORDER
) )
@@ -16,6 +16,9 @@ type UpdateReturnReasonStepInput = {
} }
export const updateReturnReasonStepId = "update-return-reasons" export const updateReturnReasonStepId = "update-return-reasons"
/**
* This step updates return reasons matching the specified filters.
*/
export const updateReturnReasonsStep = createStep( export const updateReturnReasonsStep = createStep(
updateReturnReasonStepId, updateReturnReasonStepId,
async (data: UpdateReturnReasonStepInput, { container }) => { async (data: UpdateReturnReasonStepInput, { container }) => {
@@ -9,13 +9,16 @@ import {
} from "@medusajs/workflows-sdk" } from "@medusajs/workflows-sdk"
import { createReturnReasonsStep } from "../steps" import { createReturnReasonsStep } from "../steps"
type WorkflowInput = { data: CreateOrderReturnReasonDTO[] } export type CreateReturnReasonsWorkflowInput = { data: CreateOrderReturnReasonDTO[] }
export const createReturnReasonsWorkflowId = "create-return-reasons" export const createReturnReasonsWorkflowId = "create-return-reasons"
/**
* This workflow creates one or more return reasons.
*/
export const createReturnReasonsWorkflow = createWorkflow( export const createReturnReasonsWorkflow = createWorkflow(
createReturnReasonsWorkflowId, createReturnReasonsWorkflowId,
( (
input: WorkflowData<WorkflowInput> input: WorkflowData<CreateReturnReasonsWorkflowInput>
): WorkflowResponse<OrderReturnReasonDTO[]> => { ): WorkflowResponse<OrderReturnReasonDTO[]> => {
return new WorkflowResponse(createReturnReasonsStep(input.data)) return new WorkflowResponse(createReturnReasonsStep(input.data))
} }
@@ -1,12 +1,15 @@
import { WorkflowData, createWorkflow } from "@medusajs/workflows-sdk" import { WorkflowData, createWorkflow } from "@medusajs/workflows-sdk"
import { deleteReturnReasonStep } from "../steps" import { deleteReturnReasonStep } from "../steps"
type WorkflowInput = { ids: string[] } export type DeleteReturnReasonsWorkflowInput = { ids: string[] }
export const deleteReturnReasonsWorkflowId = "delete-return-reasons" export const deleteReturnReasonsWorkflowId = "delete-return-reasons"
/**
* This workflow deletes one or more return reasons.
*/
export const deleteReturnReasonsWorkflow = createWorkflow( export const deleteReturnReasonsWorkflow = createWorkflow(
deleteReturnReasonsWorkflowId, deleteReturnReasonsWorkflowId,
(input: WorkflowData<WorkflowInput>): WorkflowData<void> => { (input: WorkflowData<DeleteReturnReasonsWorkflowInput>): WorkflowData<void> => {
return deleteReturnReasonStep(input.ids) return deleteReturnReasonStep(input.ids)
} }
) )
@@ -10,16 +10,19 @@ import {
} from "@medusajs/workflows-sdk" } from "@medusajs/workflows-sdk"
import { updateReturnReasonsStep } from "../steps" import { updateReturnReasonsStep } from "../steps"
type WorkflowInput = { export type UpdateReturnReasonsWorkflowInput = {
selector: FilterableOrderReturnReasonProps selector: FilterableOrderReturnReasonProps
update: ReturnReasonUpdatableFields update: ReturnReasonUpdatableFields
} }
export const updateReturnReasonsWorkflowId = "update-return-reasons" export const updateReturnReasonsWorkflowId = "update-return-reasons"
/**
* This workflow updates return reasons matching the specified filters.
*/
export const updateReturnReasonsWorkflow = createWorkflow( export const updateReturnReasonsWorkflow = createWorkflow(
updateReturnReasonsWorkflowId, updateReturnReasonsWorkflowId,
( (
input: WorkflowData<WorkflowInput> input: WorkflowData<UpdateReturnReasonsWorkflowInput>
): WorkflowResponse<OrderReturnReasonDTO[]> => { ): WorkflowResponse<OrderReturnReasonDTO[]> => {
return new WorkflowResponse(updateReturnReasonsStep(input)) return new WorkflowResponse(updateReturnReasonsStep(input))
} }
@@ -2,7 +2,7 @@ import { createStep, StepResponse } from "@medusajs/workflows-sdk"
import { ContainerRegistrationKeys, Modules } from "@medusajs/utils" import { ContainerRegistrationKeys, Modules } from "@medusajs/utils"
interface StepInput { export interface AssociateLocationsWithSalesChannelsStepInput {
links: { links: {
sales_channel_id: string sales_channel_id: string
location_id: string location_id: string
@@ -11,9 +11,12 @@ interface StepInput {
export const associateLocationsWithSalesChannelsStepId = export const associateLocationsWithSalesChannelsStepId =
"associate-locations-with-sales-channels-step" "associate-locations-with-sales-channels-step"
/**
* This step creates links between locations and sales channel records.
*/
export const associateLocationsWithSalesChannelsStep = createStep( export const associateLocationsWithSalesChannelsStep = createStep(
associateLocationsWithSalesChannelsStepId, associateLocationsWithSalesChannelsStepId,
async (data: StepInput, { container }) => { async (data: AssociateLocationsWithSalesChannelsStepInput, { container }) => {
if (!data.links?.length) { if (!data.links?.length) {
return new StepResponse([], []) return new StepResponse([], [])
} }
@@ -1,7 +1,7 @@
import { ContainerRegistrationKeys, Modules } from "@medusajs/utils" import { ContainerRegistrationKeys, Modules } from "@medusajs/utils"
import { createStep, StepResponse } from "@medusajs/workflows-sdk" import { createStep, StepResponse } from "@medusajs/workflows-sdk"
interface StepInput { export interface AssociateProductsWithSalesChannelsStepInput {
links: { links: {
sales_channel_id: string sales_channel_id: string
product_id: string product_id: string
@@ -10,9 +10,12 @@ interface StepInput {
export const associateProductsWithSalesChannelsStepId = export const associateProductsWithSalesChannelsStepId =
"associate-products-with-channels" "associate-products-with-channels"
/**
* This step creates links between products and sales channel records.
*/
export const associateProductsWithSalesChannelsStep = createStep( export const associateProductsWithSalesChannelsStep = createStep(
associateProductsWithSalesChannelsStepId, associateProductsWithSalesChannelsStepId,
async (input: StepInput, { container }) => { async (input: AssociateProductsWithSalesChannelsStepInput, { container }) => {
if (!input.links?.length) { if (!input.links?.length) {
return new StepResponse([], []) return new StepResponse([], [])
} }
@@ -5,14 +5,17 @@ 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"
interface StepInput { export interface CreateDefaultSalesChannelStepInput {
data: CreateSalesChannelDTO data: CreateSalesChannelDTO
} }
export const createDefaultSalesChannelStepId = "create-default-sales-channel" export const createDefaultSalesChannelStepId = "create-default-sales-channel"
/**
* This step creates a default sales channel.
*/
export const createDefaultSalesChannelStep = createStep( export const createDefaultSalesChannelStep = createStep(
createDefaultSalesChannelStepId, createDefaultSalesChannelStepId,
async (input: StepInput, { container }) => { async (input: CreateDefaultSalesChannelStepInput, { container }) => {
const salesChannelService = container.resolve<ISalesChannelModuleService>( const salesChannelService = container.resolve<ISalesChannelModuleService>(
ModuleRegistrationName.SALES_CHANNEL ModuleRegistrationName.SALES_CHANNEL
) )
@@ -5,14 +5,17 @@ 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"
interface StepInput { export interface CreateSalesChannelsStepInput {
data: CreateSalesChannelDTO[] data: CreateSalesChannelDTO[]
} }
export const createSalesChannelsStepId = "create-sales-channels" export const createSalesChannelsStepId = "create-sales-channels"
/**
* This step creates one or more sales channels.
*/
export const createSalesChannelsStep = createStep( export const createSalesChannelsStep = createStep(
createSalesChannelsStepId, createSalesChannelsStepId,
async (input: StepInput, { container }) => { async (input: CreateSalesChannelsStepInput, { container }) => {
const salesChannelService = container.resolve<ISalesChannelModuleService>( const salesChannelService = container.resolve<ISalesChannelModuleService>(
ModuleRegistrationName.SALES_CHANNEL ModuleRegistrationName.SALES_CHANNEL
) )
@@ -2,12 +2,13 @@ import { ISalesChannelModuleService } 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 DeleteSalesChannelsInput = string[]
export const deleteSalesChannelsStepId = "delete-sales-channels" export const deleteSalesChannelsStepId = "delete-sales-channels"
/**
* This step deletes one or more sales channels.
*/
export const deleteSalesChannelsStep = createStep( export const deleteSalesChannelsStep = createStep(
deleteSalesChannelsStepId, deleteSalesChannelsStepId,
async (ids: DeleteSalesChannelsInput, { container }) => { async (ids: string[], { container }) => {
const service = container.resolve<ISalesChannelModuleService>( const service = container.resolve<ISalesChannelModuleService>(
ModuleRegistrationName.SALES_CHANNEL ModuleRegistrationName.SALES_CHANNEL
) )
@@ -3,7 +3,7 @@ import { createStep, StepResponse } from "@medusajs/workflows-sdk"
import { ContainerRegistrationKeys, Modules } from "@medusajs/utils" import { ContainerRegistrationKeys, Modules } from "@medusajs/utils"
interface StepInput { export interface DetachLocationsFromSalesChannelsStepInput {
links: { links: {
sales_channel_id: string sales_channel_id: string
location_id: string location_id: string
@@ -12,9 +12,12 @@ interface StepInput {
export const detachLocationsFromSalesChannelsStepId = export const detachLocationsFromSalesChannelsStepId =
"detach-locations-from-sales-channels" "detach-locations-from-sales-channels"
/**
* This step dismisses links between location and sales channel records.
*/
export const detachLocationsFromSalesChannelsStep = createStep( export const detachLocationsFromSalesChannelsStep = createStep(
detachLocationsFromSalesChannelsStepId, detachLocationsFromSalesChannelsStepId,
async (data: StepInput, { container }) => { async (data: DetachLocationsFromSalesChannelsStepInput, { container }) => {
if (!data.links?.length) { if (!data.links?.length) {
return new StepResponse([], []) return new StepResponse([], [])
} }
@@ -1,7 +1,7 @@
import { ContainerRegistrationKeys, Modules } from "@medusajs/utils" import { ContainerRegistrationKeys, Modules } from "@medusajs/utils"
import { createStep, StepResponse } from "@medusajs/workflows-sdk" import { createStep, StepResponse } from "@medusajs/workflows-sdk"
interface StepInput { export interface DetachProductsFromSalesChannelsStepInput {
links: { links: {
sales_channel_id: string sales_channel_id: string
product_id: string product_id: string
@@ -10,9 +10,12 @@ interface StepInput {
export const detachProductsFromSalesChannelsStepId = export const detachProductsFromSalesChannelsStepId =
"detach-products-from-sales-channels-step" "detach-products-from-sales-channels-step"
/**
* This step dismisses links between product and sales channel records.
*/
export const detachProductsFromSalesChannelsStep = createStep( export const detachProductsFromSalesChannelsStep = createStep(
detachProductsFromSalesChannelsStepId, detachProductsFromSalesChannelsStepId,
async (input: StepInput, { container }) => { async (input: DetachProductsFromSalesChannelsStepInput, { container }) => {
if (!input.links?.length) { if (!input.links?.length) {
return new StepResponse(void 0, []) return new StepResponse(void 0, [])
} }
@@ -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 UpdateSalesChannelsStepInput = { export type UpdateSalesChannelsStepInput = {
selector: FilterableSalesChannelProps selector: FilterableSalesChannelProps
update: UpdateSalesChannelDTO update: UpdateSalesChannelDTO
} }
export const updateSalesChannelsStepId = "update-sales-channels" export const updateSalesChannelsStepId = "update-sales-channels"
/**
* This step updates sales channels matching the specified filters.
*/
export const updateSalesChannelsStep = createStep( export const updateSalesChannelsStep = createStep(
updateSalesChannelsStepId, updateSalesChannelsStepId,
async (data: UpdateSalesChannelsStepInput, { container }) => { async (data: UpdateSalesChannelsStepInput, { container }) => {
@@ -6,12 +6,15 @@ import {
} from "@medusajs/workflows-sdk" } from "@medusajs/workflows-sdk"
import { createSalesChannelsStep } from "../steps/create-sales-channels" import { createSalesChannelsStep } from "../steps/create-sales-channels"
type WorkflowInput = { salesChannelsData: CreateSalesChannelDTO[] } export type CreateSalesChannelsWorkflowInput = { salesChannelsData: CreateSalesChannelDTO[] }
export const createSalesChannelsWorkflowId = "create-sales-channels" export const createSalesChannelsWorkflowId = "create-sales-channels"
/**
* This workflow creates one or more sales channels.
*/
export const createSalesChannelsWorkflow = createWorkflow( export const createSalesChannelsWorkflow = createWorkflow(
createSalesChannelsWorkflowId, createSalesChannelsWorkflowId,
(input: WorkflowData<WorkflowInput>): WorkflowResponse<SalesChannelDTO[]> => { (input: WorkflowData<CreateSalesChannelsWorkflowInput>): WorkflowResponse<SalesChannelDTO[]> => {
return new WorkflowResponse( return new WorkflowResponse(
createSalesChannelsStep({ data: input.salesChannelsData }) createSalesChannelsStep({ data: input.salesChannelsData })
) )
@@ -4,12 +4,15 @@ import { deleteSalesChannelsStep } from "../steps/delete-sales-channels"
import { removeRemoteLinkStep } from "../../common/steps/remove-remote-links" import { removeRemoteLinkStep } from "../../common/steps/remove-remote-links"
import { Modules } from "@medusajs/utils" import { Modules } from "@medusajs/utils"
type WorkflowInput = { ids: string[] } export type DeleteSalesChannelsWorkflowInput = { ids: string[] }
export const deleteSalesChannelsWorkflowId = "delete-sales-channels" export const deleteSalesChannelsWorkflowId = "delete-sales-channels"
/**
* This workflow deletes one or more sales channels.
*/
export const deleteSalesChannelsWorkflow = createWorkflow( export const deleteSalesChannelsWorkflow = createWorkflow(
deleteSalesChannelsWorkflowId, deleteSalesChannelsWorkflowId,
(input: WorkflowData<WorkflowInput>): WorkflowData<void> => { (input: WorkflowData<DeleteSalesChannelsWorkflowInput>): WorkflowData<void> => {
deleteSalesChannelsStep(input.ids) deleteSalesChannelsStep(input.ids)
removeRemoteLinkStep({ removeRemoteLinkStep({
@@ -6,6 +6,9 @@ import { detachProductsFromSalesChannelsStep } from "../steps"
export const linkProductsToSalesChannelWorkflowId = export const linkProductsToSalesChannelWorkflowId =
"link-products-to-sales-channel" "link-products-to-sales-channel"
/**
* This workflow creates or dismisses links between product and sales channel records.
*/
export const linkProductsToSalesChannelWorkflow = createWorkflow( export const linkProductsToSalesChannelWorkflow = createWorkflow(
linkProductsToSalesChannelWorkflowId, linkProductsToSalesChannelWorkflowId,
(input: WorkflowData<LinkWorkflowInput>): WorkflowData<void> => { (input: WorkflowData<LinkWorkflowInput>): WorkflowData<void> => {
@@ -10,16 +10,19 @@ import {
} from "@medusajs/workflows-sdk" } from "@medusajs/workflows-sdk"
import { updateSalesChannelsStep } from "../steps/update-sales-channels" import { updateSalesChannelsStep } from "../steps/update-sales-channels"
type UpdateSalesChannelsStepInput = { export type UpdateSalesChannelsWorkflowInput = {
selector: FilterableSalesChannelProps selector: FilterableSalesChannelProps
update: UpdateSalesChannelDTO update: UpdateSalesChannelDTO
} }
export const updateSalesChannelsWorkflowId = "update-sales-channels" export const updateSalesChannelsWorkflowId = "update-sales-channels"
/**
* This workflow updates sales channels matching the specified conditions.
*/
export const updateSalesChannelsWorkflow = createWorkflow( export const updateSalesChannelsWorkflow = createWorkflow(
updateSalesChannelsWorkflowId, updateSalesChannelsWorkflowId,
( (
input: WorkflowData<UpdateSalesChannelsStepInput> input: WorkflowData<UpdateSalesChannelsWorkflowInput>
): WorkflowResponse<SalesChannelDTO[]> => { ): WorkflowResponse<SalesChannelDTO[]> => {
return new WorkflowResponse(updateSalesChannelsStep(input)) return new WorkflowResponse(updateSalesChannelsStep(input))
} }