feat(core-flows,modules-sdk,types,medusa,link-modules): adds variant <> inventory item link endpoints (#7576)
what: - adds variant inventory link management endpoints: ``` Link inventory item to variant POST /products/:id/variants/:vid/inventory-items Update variant's inventory item link POST /products/:id/variants/:vid/inventory-items/:iid Unlink variant's inventory item DELETE /products/:id/variants/:vid/inventory-items/:iid ``` - a batch endpoint that does the above 3 across variants ``` POST /products/:id/variants/inventory-items ```
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
import { LoadedModule } from "@medusajs/types"
|
||||
import { isPresent } from "@medusajs/utils"
|
||||
import { LinkDefinition } from "../remote-link"
|
||||
|
||||
export const convertRecordsToLinkDefinition = (
|
||||
links: object[],
|
||||
service: LoadedModule
|
||||
): LinkDefinition[] => {
|
||||
const linkRelations = service.__joinerConfig.relationships || []
|
||||
const linkDataFields = service.__joinerConfig.extraDataFields || []
|
||||
|
||||
const results: LinkDefinition[] = []
|
||||
|
||||
for (const link of links) {
|
||||
const result: LinkDefinition = {}
|
||||
|
||||
for (const relation of linkRelations) {
|
||||
result[relation.serviceName] = {
|
||||
[relation.foreignKey]: link[relation.foreignKey],
|
||||
}
|
||||
}
|
||||
|
||||
const data: LinkDefinition["data"] = {}
|
||||
|
||||
for (const dataField of linkDataFields) {
|
||||
data[dataField] = link[dataField]
|
||||
}
|
||||
|
||||
if (isPresent(data)) {
|
||||
result.data = data
|
||||
}
|
||||
|
||||
results.push(result)
|
||||
}
|
||||
|
||||
return results
|
||||
}
|
||||
Reference in New Issue
Block a user