GraphQL

Write an awesome doc for GraphQL. A very nice an practical one extracted from GraphQL official documentation.

View on GitHub

Use Exported Enum from Prisma

// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

generator client {
  provider = "prisma-client-js"
}

enum UserStatus {
  ACTIVE
  INACTIVE
  PENDING
}

model User {
  id        Int        @id @default(autoincrement())
  status    UserStatus @default(PENDING)
}
// resolver.ts
import { ObjectType, Field, Int, registerEnumType } from '@nestjs/graphql';
import { Resolver, Query, Args } from '@nestjs/graphql';
import { UserStatus } from '@prisma/client';

registerEnumType(UserStatus, {
  name: 'UserStatus',
  description: 'The status of a user',
});

@ObjectType()
export class User {
  @Field(() => Int)
  id: number;

  @Field(() => UserStatus)
  status: UserStatus;
}


@Resolver(() => User)
export class UserResolver {
  @Query(() => User)
  async user(@Args('status', { type: () => UserStatus }) status: UserStatus) {
    return {
      id: 1,
      status,
    };
  }
}

And now you can query the data:

query {
  user(status: INACTIVE) {
    status
  }
}