feat: Add boilerplate for the file module (#6956)
This commit is contained in:
1 parent
eb93e8f386
commit
9ccd88d025
36 files changed
+887
No files matched your search
@@ -0,0 +1,2 @@
|
||||
export * from "./steps"
|
||||
export * from "./workflows"
|
||||
@@ -0,0 +1,17 @@
|
||||
import { ModuleRegistrationName } from "@medusajs/modules-sdk"
|
||||
import { IFileModuleService } from "@medusajs/types"
|
||||
import { StepResponse, createStep } from "@medusajs/workflows-sdk"
|
||||
|
||||
export const deleteFilesStepId = "delete-files"
|
||||
export const deleteFilesStep = createStep(
|
||||
{ name: deleteFilesStepId, noCompensation: true },
|
||||
async (ids: string[], { container }) => {
|
||||
const service = container.resolve<IFileModuleService>(
|
||||
ModuleRegistrationName.FILE
|
||||
)
|
||||
|
||||
await service.delete(ids)
|
||||
return new StepResponse(void 0)
|
||||
},
|
||||
async () => {}
|
||||
)
|
||||
@@ -0,0 +1,2 @@
|
||||
export * from "./upload-files"
|
||||
export * from "./delete-files"
|
||||
@@ -0,0 +1,37 @@
|
||||
import { ModuleRegistrationName } from "@medusajs/modules-sdk"
|
||||
import { IFileModuleService } from "@medusajs/types"
|
||||
import { StepResponse, createStep } from "@medusajs/workflows-sdk"
|
||||
|
||||
type UploadFilesStepInput = {
|
||||
files: {
|
||||
filename: string
|
||||
mimeType: string
|
||||
content: Blob
|
||||
}[]
|
||||
}
|
||||
|
||||
export const uploadFilesStepId = "upload-files"
|
||||
export const uploadFilesStep = createStep(
|
||||
uploadFilesStepId,
|
||||
async (data: UploadFilesStepInput, { container }) => {
|
||||
const service = container.resolve<IFileModuleService>(
|
||||
ModuleRegistrationName.FILE
|
||||
)
|
||||
const created = await service.create(data.files)
|
||||
return new StepResponse(
|
||||
created,
|
||||
created.map((file) => file.id)
|
||||
)
|
||||
},
|
||||
async (createdIds, { container }) => {
|
||||
if (!createdIds?.length) {
|
||||
return
|
||||
}
|
||||
|
||||
const service = container.resolve<IFileModuleService>(
|
||||
ModuleRegistrationName.FILE
|
||||
)
|
||||
|
||||
await service.delete(createdIds)
|
||||
}
|
||||
)
|
||||
@@ -0,0 +1,12 @@
|
||||
import { WorkflowData, createWorkflow } from "@medusajs/workflows-sdk"
|
||||
import { deleteFilesStep } from "../steps"
|
||||
|
||||
type WorkflowInput = { ids: string[] }
|
||||
|
||||
export const deleteFilesWorkflowId = "delete-files"
|
||||
export const deleteFilesWorkflow = createWorkflow(
|
||||
deleteFilesWorkflowId,
|
||||
(input: WorkflowData<WorkflowInput>): WorkflowData<void> => {
|
||||
deleteFilesStep(input.ids)
|
||||
}
|
||||
)
|
||||
@@ -0,0 +1,2 @@
|
||||
export * from "./upload-files"
|
||||
export * from "./delete-files"
|
||||
@@ -0,0 +1,19 @@
|
||||
import { FileDTO } from "@medusajs/types"
|
||||
import { WorkflowData, createWorkflow } from "@medusajs/workflows-sdk"
|
||||
import { uploadFilesStep } from "../steps"
|
||||
|
||||
type WorkflowInput = {
|
||||
files: {
|
||||
filename: string
|
||||
mimeType: string
|
||||
content: Blob
|
||||
}[]
|
||||
}
|
||||
|
||||
export const uploadFilesWorkflowId = "upload-files"
|
||||
export const uploadFilesWorkflow = createWorkflow(
|
||||
uploadFilesWorkflowId,
|
||||
(input: WorkflowData<WorkflowInput>): WorkflowData<FileDTO[]> => {
|
||||
return uploadFilesStep(input)
|
||||
}
|
||||
)
|
||||
@@ -21,3 +21,4 @@ export * from "./stock-location"
|
||||
export * from "./store"
|
||||
export * from "./tax"
|
||||
export * from "./user"
|
||||
export * from "./file"
|
||||
Reference in new issue
Block a user