1. Repository import
- restaurant repository 가 필요하므로 restaurants.module에 임포트한다!
// restaurants.module.ts
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Restaurant } from './entities/restaurant.entity';
import { RestaurantResolver } from './retaurants.resolver';
@Module({
// TypeOrmModule.forFeature([]) : entity class
// typeorm 을 이용하여 Restaurant repository 를 import 한 것!
imports: [TypeOrmModule.forFeature([Restaurant])],
providers: [RestaurantResolver],
})
export class RestaurantsModule {}
2. Service 생성
- restaurants.service.ts 생성
// restaurants.service.ts
import { Injectable } from '@nestjs/common';
@Injectable()
export class RestaurantService {}
3. RestaurantService를 RestaurantResolver에 inject하기!
import { Args, Mutation, Query, Resolver } from '@nestjs/graphql';
import { CreateRestaurantDto } from './dtos/create-restaurant.dto';
import { Restaurant } from './entities/restaurant.entity';
import { RestaurantService } from './restaurants.service';
@Resolver((of) => Restaurant) // entity 명시 : Restaurant의 resolver가 됨.
export class RestaurantResolver {
constructor(private readonly restaurantService: RestaurantService) {}
@Query((returns) => [Restaurant])
restaurants(@Args('veganOnly') veganOnly: boolean): Restaurant[] {
return [];
}
@Mutation((returns) => Boolean)
createRestaurant(@Args() createRestaurantDto: CreateRestaurantDto): boolean {
return true;
}
}