1. Repository import


// 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

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;
  }
}