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:
@@ -5,3 +5,4 @@ export * from "./promotion"
|
||||
export * from "./customer"
|
||||
export * from "./customer-group"
|
||||
export * from "./user"
|
||||
export * from "./invite"
|
||||
|
||||
2
packages/core-flows/src/invite/index.ts
Normal file
2
packages/core-flows/src/invite/index.ts
Normal file
@@ -0,0 +1,2 @@
|
||||
export * from "./steps"
|
||||
export * from "./workflows"
|
||||
31
packages/core-flows/src/invite/steps/create-invites.ts
Normal file
31
packages/core-flows/src/invite/steps/create-invites.ts
Normal 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)
|
||||
}
|
||||
)
|
||||
28
packages/core-flows/src/invite/steps/delete-invites.ts
Normal file
28
packages/core-flows/src/invite/steps/delete-invites.ts
Normal 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)
|
||||
}
|
||||
)
|
||||
2
packages/core-flows/src/invite/steps/index.ts
Normal file
2
packages/core-flows/src/invite/steps/index.ts
Normal file
@@ -0,0 +1,2 @@
|
||||
export * from "./create-invites"
|
||||
export * from "./delete-invites"
|
||||
13
packages/core-flows/src/invite/workflows/create-invites.ts
Normal file
13
packages/core-flows/src/invite/workflows/create-invites.ts
Normal 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)
|
||||
}
|
||||
)
|
||||
13
packages/core-flows/src/invite/workflows/delete-invites.ts
Normal file
13
packages/core-flows/src/invite/workflows/delete-invites.ts
Normal 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)
|
||||
}
|
||||
)
|
||||
2
packages/core-flows/src/invite/workflows/index.ts
Normal file
2
packages/core-flows/src/invite/workflows/index.ts
Normal file
@@ -0,0 +1,2 @@
|
||||
export * from "./create-invites"
|
||||
export * from "./delete-invites"
|
||||
Reference in New Issue
Block a user