[uber-eats] user crud - 2

한재창·2023년 5월 29일
0
post-thumbnail

Create Account Mutation

Enums

enum은 특정 허용 값 집합으로 제한되는 특수한 종류의 스칼라입니다. 이 유형의 모든 인수가 허용되는 값 중 하나인지 확인합니다. 필드가 항상 유한한 값 집합 중 하나임을 유형 시스템을 통해 전달합니다.

code first 접근 방식을 사용할 때 TypeScript enum을 생성하여 GraphQL enum type을 정의합니다.
registerEnumType 함수를 사용하여 enum을 등록합니다.

Mutation 생성, 연결

  1. [users] > [dtos] > create-account.dto.ts 파일을 생성한 후 CreateAccountInput class와 CreateAccountOutput class를 만듭니다.

  2. users.resolver.ts 파일에서 Mutation 데코레이터를 생성한 뒤 반환값을 CreateAccountOutput로 설정해줍니다.

  3. Mutation 데코레이터에서 createAccount 함수를 생성한 뒤 input 타입의 Args를 받으며 Args는 CreateAccountInput 타입을 받을 수 있습니다.

  4. user.entity.ts 파일에서 role 타입을 enum 으로 바꾸고, GraphQL에서도 사용할 수 있도록 registerEnumType()를 사용해서 설정해준다. 설정한 enum은 Column, Field에 명시해줍니다.

  5. users.service.ts 파일에서 db에 새로운 user를 생성할 수 있는 createAccount 함수를 만들어줍니다.

  6. users.resolver.ts 파일에서 db 저장시 에러가 발생했을 때 에러처리합니다.

profile
취준 개발자

0개의 댓글