Add prisma:generate script to package.json

This commit is contained in:
2024-09-09 16:36:34 +07:00
parent ef0ba09df2
commit e84f89f09e
3 changed files with 68 additions and 3 deletions

View File

@@ -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<User[]> {
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<User> {
return this.prismaService.user.create({
data: {

51
src/types/user.type.ts Normal file
View File

@@ -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[];
}