UNPKG

typescript-express-starter

Version:
48 lines (42 loc) 1.37 kB
import { Arg, Mutation, Query, Resolver } from 'type-graphql'; import { CreateUserDto, UpdateUserDto } from '@dtos/users.dto'; import { UserRepository } from '@repositories/users.repository'; import { User } from '@typedefs/users.type'; @Resolver() export class UserResolver extends UserRepository { @Query(() => [User], { description: 'User find list', }) async getUsers(): Promise<User[]> { const users: User[] = await this.userFindAll(); return users; } @Query(() => User, { description: 'User find by id', }) async getUserById(@Arg('userId') userId: number): Promise<User> { const user: User = await this.userFindById(userId); return user; } @Mutation(() => User, { description: 'User create', }) async createUser(@Arg('userData') userData: CreateUserDto): Promise<User> { const user: User = await this.userCreate(userData); return user; } @Mutation(() => User, { description: 'User update', }) async updateUser(@Arg('userId') userId: number, @Arg('userData') userData: UpdateUserDto): Promise<User> { const user: User = await this.userUpdate(userId, userData); return user; } @Mutation(() => User, { description: 'User delete', }) async deleteUser(@Arg('userId') userId: number): Promise<User> { const user: User = await this.userDelete(userId); return user; } }