Как использовать поле разрешения и загрузчик данных Nest JS в NestJS/Grapql?
Я столкнулся с двумя проблемами при использовании декоратора ResolveFeild.
Вот моя категория Entity-
@ObjectType()
export class Category {
@Field(() => ID, { nullable: false })
id: ObjectId;
@Field(() => String, { nullable: false })
name: string;
@Field(() => String, { nullable: true })
description: string;
@Field(() => [Subcategory], { nullable: true })
subCategory: Subcategory[];
@Field(() => Date, { nullable: false })
createdAt: DateScalar;
@Field(() => Date, { nullable: false })
updatedAt: DateScalar;
}
У меня есть одно поле subCategory. Сущность подкатегории -
@ObjectType()
export class Subcategory {
@Field(() => ID, { nullable: false })
id: ObjectId;
@Field(() => String, { nullable: false })
name: string;
@Field(() => Category, { nullable: false })
category: Category;
@Field(() => Date, { nullable: false })
createdAt: DateScalar;
@Field(() => Date, { nullable: false })
updatedAt: DateScalar;
}
Затем я запускаю один запрос для возврата категории.
@Query(() => [Category], { name: "getCategories" })
categories() {
return this.categoryService.categories()
}
//Resolver field for Category query
@ResolveField('subcategory', () => [Subcategory])
getSubCategory(
@Parent() category: Category,
) {
console.log(category)
}
В консоли мы видим-
{
_id: new ObjectId("62a1b6bf182e9775f15f8433"),
name: 'Shirts',
description: 'This is computer descriptions',
subCategory: [
new ObjectId("62a21d65df7751587e09d163"),
new ObjectId("62a21d52df7751587e09d15e")
],
createdAt: 2022-06-09T09:00:47.607Z,
updatedAt: 2022-06-10T12:43:28.158Z,
__v: 0
}
{
_id: new ObjectId("62a355c4cd532cce21b0a3d2"),
name: 'Computer',
description: 'Shirt is a category description!',
subCategory: [],
createdAt: 2022-06-10T14:31:32.634Z,
updatedAt: 2022-06-10T14:31:32.634Z,
__v: 0
}
Тогда как я могу отправить эту подкатегорию в службу категорий?
пробую так-
const { subCategory } = category;
return this.categoryService.subCategoryBatch(subCategory)
и КатегорияСервис-
async subCategoryBatch(subCategory: //What will be type?) {
}
может ли кто-нибудь помочь мне или дать какой-либо пример кода. И я также хочу использовать загрузчик данных в этом проекте. Может кто-нибудь мне помочь?
это код моего проекта - https://github.com/siamahnaf198/ebuy-back
Пожалуйста, помогите мне и приведите только один пример с работой загрузчика данных и ResolveField.