feat(utils): update joiner config for campaigns (#6161)
This commit is contained in:
1 parent
85efa9b910
commit
daecd82a7c
4 files changed
+41
-17
No files matched your search
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@medusajs/utils": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
feat(utils): update joiner config for campaigns
|
||||||
@@ -1,31 +1,32 @@
|
|||||||
import { Modules } from "@medusajs/modules-sdk"
|
import { Modules } from "@medusajs/modules-sdk"
|
||||||
import { ModuleJoinerConfig } from "@medusajs/types"
|
import { ModuleJoinerConfig } from "@medusajs/types"
|
||||||
import { MapToConfig } from "@medusajs/utils"
|
import { generateLinkableKeysMap } from "@medusajs/utils"
|
||||||
import { Promotion } from "@models"
|
import { Campaign, Promotion } from "@models"
|
||||||
|
|
||||||
export const LinkableKeys = {
|
export const LinkableKeys = {
|
||||||
promotion_id: Promotion.name,
|
promotion_id: Promotion.name,
|
||||||
|
campaign_id: Campaign.name,
|
||||||
}
|
}
|
||||||
|
|
||||||
const entityLinkableKeysMap: MapToConfig = {}
|
export const entityNameToLinkableKeysMap = generateLinkableKeysMap(LinkableKeys)
|
||||||
Object.entries(LinkableKeys).forEach(([key, value]) => {
|
|
||||||
entityLinkableKeysMap[value] ??= []
|
|
||||||
entityLinkableKeysMap[value].push({
|
|
||||||
mapTo: key,
|
|
||||||
valueFrom: key.split("_").pop()!,
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
export const entityNameToLinkableKeysMap: MapToConfig = entityLinkableKeysMap
|
|
||||||
|
|
||||||
export const joinerConfig: ModuleJoinerConfig = {
|
export const joinerConfig: ModuleJoinerConfig = {
|
||||||
serviceName: Modules.PROMOTION,
|
serviceName: Modules.PROMOTION,
|
||||||
primaryKeys: ["id"],
|
primaryKeys: ["id"],
|
||||||
linkableKeys: LinkableKeys,
|
linkableKeys: LinkableKeys,
|
||||||
alias: {
|
alias: [
|
||||||
name: ["promotion", "promotions"],
|
{
|
||||||
args: {
|
name: ["promotion", "promotions"],
|
||||||
entity: Promotion.name,
|
args: {
|
||||||
|
entity: Promotion.name,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
{
|
||||||
|
name: ["campaign", "campaigns"],
|
||||||
|
args: {
|
||||||
|
entity: Campaign.name,
|
||||||
|
methodSuffix: "Campaigns",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
import { MapToConfig } from "./map-object-to"
|
||||||
|
|
||||||
|
export function generateLinkableKeysMap(
|
||||||
|
linkableKeys: Record<string, string>
|
||||||
|
): MapToConfig {
|
||||||
|
const entityLinkableKeysMap: MapToConfig = {}
|
||||||
|
|
||||||
|
Object.entries(linkableKeys).forEach(([key, value]) => {
|
||||||
|
entityLinkableKeysMap[value] ??= []
|
||||||
|
entityLinkableKeysMap[value].push({
|
||||||
|
mapTo: key,
|
||||||
|
valueFrom: key.split("_").pop()!,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
return entityLinkableKeysMap
|
||||||
|
}
|
||||||
@@ -7,6 +7,7 @@ export * from "./deduplicate"
|
|||||||
export * from "./deep-equal-obj"
|
export * from "./deep-equal-obj"
|
||||||
export * from "./errors"
|
export * from "./errors"
|
||||||
export * from "./generate-entity-id"
|
export * from "./generate-entity-id"
|
||||||
|
export * from "./generate-linkable-keys-map"
|
||||||
export * from "./get-config-file"
|
export * from "./get-config-file"
|
||||||
export * from "./get-iso-string-from-date"
|
export * from "./get-iso-string-from-date"
|
||||||
export * from "./get-selects-and-relations-from-object-array"
|
export * from "./get-selects-and-relations-from-object-array"
|
||||||
|
|||||||
Reference in new issue
Block a user