feat(medusa, types, core-flows): Add invite endpoints for api-v2 (#6395)

**What**
- Add invite endpoints for simple operations on invites
This commit is contained in:
Philip Korsholm
2024-02-14 23:33:26 +08:00
committed by GitHub
parent 1ed5f918c3
commit 02c53ec93f
26 changed files with 649 additions and 9 deletions

View File

@@ -5,3 +5,4 @@ export * from "./promotion"
export * from "./customer"
export * from "./customer-group"
export * from "./user"
export * from "./invite"

View File

@@ -0,0 +1,2 @@
export * from "./steps"
export * from "./workflows"

View File

@@ -0,0 +1,31 @@
import { ModuleRegistrationName } from "@medusajs/modules-sdk"
import { CreateInviteDTO, IUserModuleService, InviteDTO } from "@medusajs/types"
import { StepResponse, createStep } from "@medusajs/workflows-sdk"
export const createInviteStepId = "create-invite-step"
export const createInviteStep = createStep(
createInviteStepId,
async (input: CreateInviteDTO[], { container }) => {
const service: IUserModuleService = container.resolve(
ModuleRegistrationName.USER
)
const createdInvites = await service.createInvites(input)
return new StepResponse(
createdInvites,
createdInvites.map((inv) => inv.id)
)
},
async (createdInvitesIds, { container }) => {
if (!createdInvitesIds?.length) {
return
}
const service: IUserModuleService = container.resolve(
ModuleRegistrationName.USER
)
await service.deleteInvites(createdInvitesIds)
}
)

View File

@@ -0,0 +1,28 @@
import { ModuleRegistrationName } from "@medusajs/modules-sdk"
import { IUserModuleService } from "@medusajs/types"
import { StepResponse, createStep } from "@medusajs/workflows-sdk"
export const deleteInvitesStepId = "delete-invites-step"
export const deleteInvitesStep = createStep(
deleteInvitesStepId,
async (input: string[], { container }) => {
const service: IUserModuleService = container.resolve(
ModuleRegistrationName.USER
)
await service.softDeleteInvites(input)
return new StepResponse(void 0, input)
},
async (deletedInviteIds, { container }) => {
if (!deletedInviteIds?.length) {
return
}
const service: IUserModuleService = container.resolve(
ModuleRegistrationName.USER
)
await service.restoreInvites(deletedInviteIds)
}
)

View File

@@ -0,0 +1,2 @@
export * from "./create-invites"
export * from "./delete-invites"

View File

@@ -0,0 +1,13 @@
import { WorkflowData, createWorkflow } from "@medusajs/workflows-sdk"
import { createInviteStep } from "../steps"
import { InviteDTO, InviteWorkflow } from "@medusajs/types"
export const createInvitesWorkflowId = "create-invite-step"
export const createInvitesWorkflow = createWorkflow(
createInvitesWorkflowId,
(
input: WorkflowData<InviteWorkflow.CreateInvitesWorkflowInputDTO>
): WorkflowData<InviteDTO[]> => {
return createInviteStep(input.invites)
}
)

View File

@@ -0,0 +1,13 @@
import { WorkflowData, createWorkflow } from "@medusajs/workflows-sdk"
import { deleteInvitesStep } from "../steps"
import { InviteWorkflow, UserWorkflow } from "@medusajs/types"
export const deleteInvitesWorkflowId = "delete-invites-workflow"
export const deleteInvitesWorkflow = createWorkflow(
deleteInvitesWorkflowId,
(
input: WorkflowData<InviteWorkflow.DeleteInvitesWorkflowInput>
): WorkflowData<void> => {
return deleteInvitesStep(input.ids)
}
)

View File

@@ -0,0 +1,2 @@
export * from "./create-invites"
export * from "./delete-invites"