2021-07-08 23:58:07 +02:00
|
|
|
import {
|
|
|
|
Args,
|
|
|
|
ID,
|
|
|
|
Mutation,
|
|
|
|
Parent,
|
|
|
|
Query,
|
|
|
|
ResolveField,
|
|
|
|
Resolver,
|
|
|
|
} from '@nestjs/graphql';
|
2021-07-08 19:40:14 +02:00
|
|
|
import { NewItemInput } from './dto/new-item.input';
|
|
|
|
import { ItemModel } from './items.model';
|
|
|
|
import { ItemsService } from './items.service';
|
|
|
|
|
|
|
|
@Resolver((of) => ItemModel)
|
|
|
|
export class ItemsResolver {
|
|
|
|
constructor(private itemsService: ItemsService) {}
|
|
|
|
|
|
|
|
@Query((returns) => ItemModel, { nullable: true })
|
|
|
|
async item(@Args('id', { type: () => ID }) id: string) {
|
|
|
|
return this.itemsService.getItem(id);
|
|
|
|
}
|
|
|
|
|
2021-07-08 23:58:07 +02:00
|
|
|
@ResolveField()
|
|
|
|
async parent(@Parent() item: ItemModel) {
|
|
|
|
return this.itemsService.getItemParent(item);
|
|
|
|
}
|
|
|
|
|
2021-07-17 18:34:30 +02:00
|
|
|
@ResolveField()
|
|
|
|
async children(@Parent() item: ItemModel) {
|
|
|
|
return this.itemsService.getItemChildren(item);
|
|
|
|
}
|
|
|
|
|
2021-07-17 22:51:12 +02:00
|
|
|
@ResolveField()
|
|
|
|
async descendents(@Parent() item: ItemModel) {
|
|
|
|
return this.itemsService.getItemDescendents(item);
|
|
|
|
}
|
|
|
|
|
2021-07-08 19:40:14 +02:00
|
|
|
@Mutation((returns) => ItemModel)
|
|
|
|
async createItem(@Args('itemData') itemData: NewItemInput) {
|
|
|
|
return this.itemsService.createItem(itemData);
|
|
|
|
}
|
|
|
|
}
|