Add GraphqlService to handle GraphQL requests

This commit is contained in:
2024-09-09 16:14:21 +07:00
parent fbe03be7ca
commit 30e7ec74b6
12 changed files with 1517 additions and 50 deletions

View File

@@ -0,0 +1,8 @@
import { Module } from '@nestjs/common';
import { GraphqlService } from './graphql.service';
import { GraphqlResolver } from './graphql.resolver';
@Module({
providers: [GraphqlService, GraphqlResolver],
})
export class GraphqlModule {}

View File

@@ -0,0 +1,18 @@
import { Test, TestingModule } from '@nestjs/testing';
import { GraphqlResolver } from './graphql.resolver';
describe('GraphqlResolver', () => {
let resolver: GraphqlResolver;
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
providers: [GraphqlResolver],
}).compile();
resolver = module.get<GraphqlResolver>(GraphqlResolver);
});
it('should be defined', () => {
expect(resolver).toBeDefined();
});
});

View File

@@ -0,0 +1,26 @@
import { Resolver, Query, Mutation, Args } from '@nestjs/graphql';
import { PrismaService } from 'src/prisma/prisma.service';
import { User } from '@prisma/client';
@Resolver('User')
export class GraphqlResolver {
constructor(private readonly prismaService: PrismaService) {}
@Query(() => [User])
async users(): Promise<User[]> {
return this.prismaService.user.findMany();
}
@Mutation(() => User)
async createUser(
@Args('email') email: string,
@Args('name', { nullable: true }) name?: string,
): Promise<User> {
return this.prismaService.user.create({
data: {
email,
name,
},
});
}
}

View File

@@ -0,0 +1,18 @@
import { Test, TestingModule } from '@nestjs/testing';
import { GraphqlService } from './graphql.service';
describe('GraphqlService', () => {
let service: GraphqlService;
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
providers: [GraphqlService],
}).compile();
service = module.get<GraphqlService>(GraphqlService);
});
it('should be defined', () => {
expect(service).toBeDefined();
});
});

View File

@@ -0,0 +1,4 @@
import { Injectable } from '@nestjs/common';
@Injectable()
export class GraphqlService {}