Chore/rm main entity concept (#7709)

**What**
Update the `MedusaService` class, factory and types to remove the concept of main modules. The idea being that all method will be explicitly named and suffixes to represent the object you are trying to manipulate.
This pr also includes various fixes in different modules

Co-authored-by: Stevche Radevski <4820812+sradevski@users.noreply.github.com>
Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
This commit is contained in:
Adrien de Peretti
2024-06-19 15:02:16 +02:00
committed by GitHub
parent 2895ccfba8
commit 48963f55ef
533 changed files with 6469 additions and 9769 deletions

View File

@@ -1,5 +1,13 @@
import { moduleDefinition } from "./module-definition"
export * from "./types"
export * from "./services"
import { ModuleExports } from "@medusajs/types"
import { FileModuleService } from "@services"
import loadProviders from "./loaders/providers"
const loaders = [loadProviders] as any
const service = FileModuleService
export const moduleDefinition: ModuleExports = {
service,
loaders,
}
export default moduleDefinition

View File

@@ -1,22 +1,13 @@
import { Modules } from "@medusajs/modules-sdk"
import { ModuleJoinerConfig } from "@medusajs/types"
import { MapToConfig } from "@medusajs/utils"
import {
buildEntitiesNameToLinkableKeysMap,
defineJoinerConfig,
MapToConfig,
} from "@medusajs/utils"
export const LinkableKeys = {}
export const joinerConfig = defineJoinerConfig(Modules.FILE, {
entityQueryingConfig: [{ name: "File" }],
})
const entityLinkableKeysMap: MapToConfig = {}
export const entityNameToLinkableKeysMap: MapToConfig = entityLinkableKeysMap
export const joinerConfig: ModuleJoinerConfig = {
serviceName: Modules.FILE,
primaryKeys: ["id"],
linkableKeys: LinkableKeys,
alias: [
{
name: ["file", "files"],
args: {
entity: "File",
},
},
],
}
export const entityNameToLinkableKeysMap: MapToConfig =
buildEntitiesNameToLinkableKeysMap({})

View File

@@ -1,11 +0,0 @@
import { ModuleExports } from "@medusajs/types"
import { FileModuleService } from "@services"
import loadProviders from "./loaders/providers"
const loaders = [loadProviders] as any
const service = FileModuleService
export const moduleDefinition: ModuleExports = {
service,
loaders,
}

View File

@@ -2,10 +2,10 @@ import {
Context,
CreateFileDTO,
FileDTO,
ModuleJoinerConfig,
FileTypes,
FilterableFileProps,
FindConfig,
ModuleJoinerConfig,
} from "@medusajs/types"
import { joinerConfig } from "../joiner-config"
@@ -26,10 +26,13 @@ export default class FileModuleService implements FileTypes.IFileModuleService {
return joinerConfig
}
create(data: CreateFileDTO[], sharedContext?: Context): Promise<FileDTO[]>
create(data: CreateFileDTO, sharedContext?: Context): Promise<FileDTO>
createFiles(
data: CreateFileDTO[],
sharedContext?: Context
): Promise<FileDTO[]>
createFiles(data: CreateFileDTO, sharedContext?: Context): Promise<FileDTO>
async create(
async createFiles(
data: CreateFileDTO[] | CreateFileDTO
): Promise<FileDTO[] | FileDTO> {
const input = Array.isArray(data) ? data : [data]
@@ -46,9 +49,9 @@ export default class FileModuleService implements FileTypes.IFileModuleService {
return Array.isArray(data) ? result : result[0]
}
async delete(ids: string[], sharedContext?: Context): Promise<void>
async delete(id: string, sharedContext?: Context): Promise<void>
async delete(ids: string[] | string): Promise<void> {
async deleteFiles(ids: string[], sharedContext?: Context): Promise<void>
async deleteFiles(id: string, sharedContext?: Context): Promise<void>
async deleteFiles(ids: string[] | string): Promise<void> {
const input = Array.isArray(ids) ? ids : [ids]
await Promise.all(
input.map((id) => this.fileProviderService_.delete({ fileKey: id }))
@@ -57,7 +60,7 @@ export default class FileModuleService implements FileTypes.IFileModuleService {
return
}
async retrieve(id: string): Promise<FileDTO> {
async retrieveFile(id: string): Promise<FileDTO> {
const res = await this.fileProviderService_.getPresignedDownloadUrl({
fileKey: id,
})
@@ -68,7 +71,7 @@ export default class FileModuleService implements FileTypes.IFileModuleService {
}
}
async list(
async listFiles(
filters?: FilterableFileProps,
config?: FindConfig<FileDTO>,
sharedContext?: Context
@@ -97,7 +100,7 @@ export default class FileModuleService implements FileTypes.IFileModuleService {
]
}
async listAndCount(
async listAndCountFiles(
filters?: FilterableFileProps,
config?: FindConfig<FileDTO>,
sharedContext?: Context