feat: Add boilerplate for the file module (#6956)

This commit is contained in:
Stevche Radevski authored and GitHub committed 2024-04-05 14:46:02 +02:00
1 parent eb93e8f386
commit 9ccd88d025
36 files changed
+887

No files matched your search

+2
View File
@@ -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)
}
)
+1
View File
@@ -21,3 +21,4 @@ export * from "./stock-location"
export * from "./store"
export * from "./tax"
export * from "./user"
export * from "./file"