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:
Shahed Nasser
2023-10-04 11:05:23 +03:00
committed by GitHub
parent 130cbc1f43
commit 6d9c0eb70b
2 changed files with 35 additions and 45 deletions
+14 -14
View File
@@ -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)