docs: fix usage of non-existing repository in digital products recipe (#5280)
* docs: fix usage of non-existing repository in digital products recipe * fix content linting
This commit is contained in:
@@ -310,28 +310,28 @@ Create the file `src/loaders/contentful-migrations/product-collection.ts` with t
|
|||||||
|
|
||||||
```ts title=src/loaders/contentful-migrations/product-collection.ts
|
```ts title=src/loaders/contentful-migrations/product-collection.ts
|
||||||
import Migration, {
|
import Migration, {
|
||||||
MigrationContext
|
MigrationContext,
|
||||||
} from "contentful-migration";
|
} from "contentful-migration"
|
||||||
|
|
||||||
export function productCollectionMigration (
|
export function productCollectionMigration(
|
||||||
migration: Migration,
|
migration: Migration,
|
||||||
context?: MigrationContext
|
context?: MigrationContext
|
||||||
) {
|
) {
|
||||||
const collection = migration
|
const collection = migration
|
||||||
.createContentType("collection")
|
.createContentType("collection")
|
||||||
.name("Product Collection")
|
.name("Product Collection")
|
||||||
.displayField("title");
|
.displayField("title")
|
||||||
|
|
||||||
collection
|
collection
|
||||||
.createField("title")
|
.createField("title")
|
||||||
.name("Title")
|
.name("Title")
|
||||||
.type("Symbol")
|
.type("Symbol")
|
||||||
.required(true);
|
.required(true)
|
||||||
collection
|
collection
|
||||||
.createField("medusaId")
|
.createField("medusaId")
|
||||||
.name("Medusa ID")
|
.name("Medusa ID")
|
||||||
.type("Symbol");
|
.type("Symbol")
|
||||||
};
|
}
|
||||||
```
|
```
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
@@ -344,28 +344,28 @@ Create the file `src/loaders/contentful-migrations/product-type.ts` with the fol
|
|||||||
|
|
||||||
```ts title=src/loaders/contentful-migrations/product-type.ts
|
```ts title=src/loaders/contentful-migrations/product-type.ts
|
||||||
import Migration, {
|
import Migration, {
|
||||||
MigrationContext
|
MigrationContext,
|
||||||
} from "contentful-migration";
|
} from "contentful-migration"
|
||||||
|
|
||||||
export function productTypeMigration (
|
export function productTypeMigration(
|
||||||
migration: Migration,
|
migration: Migration,
|
||||||
context?: MigrationContext
|
context?: MigrationContext
|
||||||
) {
|
) {
|
||||||
const collection = migration
|
const collection = migration
|
||||||
.createContentType("productType")
|
.createContentType("productType")
|
||||||
.name("Product Type")
|
.name("Product Type")
|
||||||
.displayField("title");
|
.displayField("title")
|
||||||
|
|
||||||
collection
|
collection
|
||||||
.createField("title")
|
.createField("title")
|
||||||
.name("Title")
|
.name("Title")
|
||||||
.type("Symbol")
|
.type("Symbol")
|
||||||
.required(true);
|
.required(true)
|
||||||
collection
|
collection
|
||||||
.createField("medusaId")
|
.createField("medusaId")
|
||||||
.name("Medusa ID")
|
.name("Medusa ID")
|
||||||
.type("Symbol");
|
.type("Symbol")
|
||||||
};
|
}
|
||||||
```
|
```
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
|||||||
@@ -284,26 +284,18 @@ import {
|
|||||||
TransactionBaseService,
|
TransactionBaseService,
|
||||||
buildQuery,
|
buildQuery,
|
||||||
} from "@medusajs/medusa"
|
} from "@medusajs/medusa"
|
||||||
import {
|
|
||||||
ProductMediaRepository,
|
|
||||||
} from "../repositories/product-media"
|
|
||||||
import { ProductMedia } from "../models/product-media"
|
import { ProductMedia } from "../models/product-media"
|
||||||
import { MedusaError } from "@medusajs/utils"
|
import { MedusaError } from "@medusajs/utils"
|
||||||
|
|
||||||
type InjectedDependencies = {
|
type InjectedDependencies = {
|
||||||
productMediaRepository: typeof ProductMediaRepository
|
|
||||||
productVariantService: ProductVariantService
|
productVariantService: ProductVariantService
|
||||||
}
|
}
|
||||||
|
|
||||||
class ProductMediaService extends TransactionBaseService {
|
class ProductMediaService extends TransactionBaseService {
|
||||||
protected productMediaRepository_:
|
|
||||||
typeof ProductMediaRepository
|
|
||||||
protected productVariantService_: ProductVariantService
|
protected productVariantService_: ProductVariantService
|
||||||
|
|
||||||
constructor(container: InjectedDependencies) {
|
constructor(container: InjectedDependencies) {
|
||||||
super(container)
|
super(container)
|
||||||
this.productMediaRepository_ =
|
|
||||||
container.productMediaRepository
|
|
||||||
this.productVariantService_ =
|
this.productVariantService_ =
|
||||||
container.productVariantService
|
container.productVariantService
|
||||||
}
|
}
|
||||||
@@ -328,12 +320,12 @@ class ProductMediaService extends TransactionBaseService {
|
|||||||
relations: [],
|
relations: [],
|
||||||
}
|
}
|
||||||
): Promise<[ProductMedia[], number]> {
|
): Promise<[ProductMedia[], number]> {
|
||||||
const productMediaRepo = this.activeManager_.withRepository(
|
const productMediaRepo = this.activeManager_.getRepository(
|
||||||
this.productMediaRepository_
|
ProductMedia
|
||||||
)
|
)
|
||||||
|
|
||||||
const [
|
const [
|
||||||
relations,
|
relations,
|
||||||
isVariantsEnabled,
|
isVariantsEnabled,
|
||||||
] = this.checkVariantInRelations(
|
] = this.checkVariantInRelations(
|
||||||
config.relations || []
|
config.relations || []
|
||||||
@@ -354,8 +346,7 @@ class ProductMediaService extends TransactionBaseService {
|
|||||||
async (media, index) => {
|
async (media, index) => {
|
||||||
productMedias[index].variant =
|
productMedias[index].variant =
|
||||||
await this.retrieveVariantByMedia(media)
|
await this.retrieveVariantByMedia(media)
|
||||||
})
|
}))
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return [productMedias, count]
|
return [productMedias, count]
|
||||||
@@ -370,9 +361,8 @@ class ProductMediaService extends TransactionBaseService {
|
|||||||
}
|
}
|
||||||
): Promise<ProductMedia[]> {
|
): Promise<ProductMedia[]> {
|
||||||
const [productMedias] = await this.listAndCount(
|
const [productMedias] = await this.listAndCount(
|
||||||
selector,
|
selector, config
|
||||||
config
|
)
|
||||||
)
|
|
||||||
|
|
||||||
return productMedias
|
return productMedias
|
||||||
}
|
}
|
||||||
@@ -381,10 +371,9 @@ class ProductMediaService extends TransactionBaseService {
|
|||||||
id: string,
|
id: string,
|
||||||
config?: FindConfig<ProductMedia>
|
config?: FindConfig<ProductMedia>
|
||||||
): Promise<ProductMedia> {
|
): Promise<ProductMedia> {
|
||||||
const productMediaRepo =
|
const productMediaRepo = this.activeManager_.getRepository(
|
||||||
this.activeManager_.withRepository(
|
ProductMedia
|
||||||
this.productMediaRepository_
|
)
|
||||||
)
|
|
||||||
|
|
||||||
const query = buildQuery({
|
const query = buildQuery({
|
||||||
id,
|
id,
|
||||||
@@ -400,8 +389,9 @@ class ProductMediaService extends TransactionBaseService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (config.relations.includes("variant")) {
|
if (config.relations.includes("variant")) {
|
||||||
productMedia.variant =
|
productMedia.variant = await this.retrieveVariantByMedia(
|
||||||
await this.retrieveVariantByMedia(productMedia)
|
productMedia
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
return productMedia
|
return productMedia
|
||||||
@@ -409,7 +399,8 @@ class ProductMediaService extends TransactionBaseService {
|
|||||||
|
|
||||||
async retrieveVariantByMedia(productMedia: ProductMedia) {
|
async retrieveVariantByMedia(productMedia: ProductMedia) {
|
||||||
return await this.productVariantService_.retrieve(
|
return await this.productVariantService_.retrieve(
|
||||||
productMedia.variant_id, {
|
productMedia.variant_id,
|
||||||
|
{
|
||||||
relations: ["product"],
|
relations: ["product"],
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -417,13 +408,12 @@ class ProductMediaService extends TransactionBaseService {
|
|||||||
|
|
||||||
async create(
|
async create(
|
||||||
data: Pick<
|
data: Pick<
|
||||||
ProductMedia,
|
ProductMedia, "name" | "file_key" | "variant_id" | "type"
|
||||||
"name" | "file_key" | "variant_id" | "type"
|
|
||||||
>
|
>
|
||||||
): Promise<ProductMedia> {
|
): Promise<ProductMedia> {
|
||||||
return this.atomicPhase_(async (manager) => {
|
return this.atomicPhase_(async (manager) => {
|
||||||
const productMediaRepo = manager.withRepository(
|
const productMediaRepo = manager.getRepository(
|
||||||
this.productMediaRepository_
|
ProductMedia
|
||||||
)
|
)
|
||||||
const productMedia = productMediaRepo.create(data)
|
const productMedia = productMediaRepo.create(data)
|
||||||
const result = await productMediaRepo.save(productMedia)
|
const result = await productMediaRepo.save(productMedia)
|
||||||
@@ -437,8 +427,8 @@ class ProductMediaService extends TransactionBaseService {
|
|||||||
data: Omit<Partial<ProductMedia>, "id">
|
data: Omit<Partial<ProductMedia>, "id">
|
||||||
): Promise<ProductMedia> {
|
): Promise<ProductMedia> {
|
||||||
return await this.atomicPhase_(async (manager) => {
|
return await this.atomicPhase_(async (manager) => {
|
||||||
const productMediaRepo = manager.withRepository(
|
const productMediaRepo = manager.getRepository(
|
||||||
this.productMediaRepository_
|
ProductMedia
|
||||||
)
|
)
|
||||||
const productMedia = await this.retrieve(id)
|
const productMedia = await this.retrieve(id)
|
||||||
|
|
||||||
@@ -450,8 +440,8 @@ class ProductMediaService extends TransactionBaseService {
|
|||||||
|
|
||||||
async delete(id: string): Promise<void> {
|
async delete(id: string): Promise<void> {
|
||||||
return await this.atomicPhase_(async (manager) => {
|
return await this.atomicPhase_(async (manager) => {
|
||||||
const productMediaRepo = manager.withRepository(
|
const productMediaRepo = manager.getRepository(
|
||||||
this.productMediaRepository_
|
ProductMedia
|
||||||
)
|
)
|
||||||
const productMedia = await this.retrieve(id)
|
const productMedia = await this.retrieve(id)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user