diff --git a/package.json b/package.json index 7421f5a..bdbe857 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "start:dev": "nest start --watch", "start:debug": "nest start --debug --watch", "start:prod": "node dist/main", + "prisma:generate": "npx prisma generate --schema=./epess-database/prisma/schema.prisma", "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", "test": "jest", "test:watch": "jest --watch", diff --git a/src/graphql/graphql.resolver.ts b/src/graphql/graphql.resolver.ts index 214599a..6cb42de 100644 --- a/src/graphql/graphql.resolver.ts +++ b/src/graphql/graphql.resolver.ts @@ -1,20 +1,33 @@ import { Resolver, Query, Mutation, Args } from '@nestjs/graphql'; import { PrismaService } from 'src/prisma/prisma.service'; -import { User } from '@prisma/client'; +import { User } from 'src/types/user.type'; +import { Role } from '@prisma/client'; @Resolver('User') export class GraphqlResolver { constructor(private readonly prismaService: PrismaService) {} @Query(() => [User]) - async users(): Promise { + async users(): Promise< + { + id: string; + name: string; + email: string; + password: string; + phoneNumber: string; + oauthToken: string | null; + role: Role; + createdAt: Date; + updatedAt: Date; + }[] + > { return this.prismaService.user.findMany(); } @Mutation(() => User) async createUser( @Args('email') email: string, - @Args('name', { nullable: true }) name?: string, + @Args('name') name: string, ): Promise { return this.prismaService.user.create({ data: { diff --git a/src/types/user.type.ts b/src/types/user.type.ts new file mode 100644 index 0000000..c566a71 --- /dev/null +++ b/src/types/user.type.ts @@ -0,0 +1,51 @@ +import { ObjectType, Field, Int } from '@nestjs/graphql'; +import { + User as PrismaUser, + Role, + Order, + UploadedDocument, + Chat, + Feedback, +} from '@prisma/client'; + +@ObjectType() +export class User implements PrismaUser { + @Field(() => Int) + id: string; + + @Field() + name: string; + + @Field() + email: string; + + @Field() + password: string; + + @Field() + phoneNumber: string; + + @Field() + oauthToken: string | null; + + @Field() + role: Role; + + @Field() + createdAt: Date; + + @Field() + updatedAt: Date; + + @Field() + orders: Order[]; + + @Field() + feedbacks: Feedback[]; + + @Field() + chats: Chat[]; + + @Field() + documents: UploadedDocument[]; +}