Skip to content

Commit

Permalink
added todo query to graph
Browse files Browse the repository at this point in the history
  • Loading branch information
enochval committed Jun 11, 2024
1 parent 0de8d3d commit 4c59a7c
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 6 deletions.
2 changes: 2 additions & 0 deletions src/graphql.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,8 @@ export abstract class IQuery {
abstract albums(first?: Nullable<number>, albumId?: Nullable<number>, userId?: Nullable<number>): Nullable<Nullable<Album>[]> | Promise<Nullable<Nullable<Album>[]>>;

abstract photos(first?: Nullable<number>, photoId?: Nullable<number>, albumId?: Nullable<number>): Nullable<Nullable<Photo>[]> | Promise<Nullable<Nullable<Photo>[]>>;

abstract todos(first?: Nullable<number>, todoId?: Nullable<number>, userId?: Nullable<number>): Nullable<Nullable<Todo>[]> | Promise<Nullable<Nullable<Todo>[]>>;
}

type Nullable<T> = T | null;
11 changes: 6 additions & 5 deletions src/todos/todos.module.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
import { Module } from '@nestjs/common';
import { Module, forwardRef } from '@nestjs/common';
import { TodosService } from './todos.service';
import { HttpModule } from '@nestjs/axios';
import { JsonplaceholderModule } from 'src/jsonplaceholder/jsonplaceholder.module';
import { TodosResolver } from './todos.resolver';
import { UserModule } from 'src/users/users.module';

@Module({
imports: [
HttpModule,
JsonplaceholderModule
JsonplaceholderModule,
forwardRef(() => UserModule)
],
providers: [TodosService],
providers: [TodosService, TodosResolver],
exports: [TodosService]
})
export class TodosModule {}
24 changes: 24 additions & 0 deletions src/todos/todos.resolver.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import { Args, Parent, Query, ResolveField, Resolver } from "@nestjs/graphql";
import { TodosService } from "./todos.service";
import { Todo, User } from "src/graphql";
import { UserService } from "src/users/users.service";


@Resolver('Todo')
export class TodosResolver {

constructor(
private readonly todosService: TodosService,
private readonly usersService: UserService
) {}

@Query('todos')
async getTodos(@Args() args): Promise<Todo[]> {
return await this.todosService.getTodos(args)
}

@ResolveField('user')
async getTodoUser(@Parent() todo): Promise<User> {
return await this.usersService.getUserById(todo.userId)
}
}
1 change: 1 addition & 0 deletions src/users/users.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -76,4 +76,5 @@ type Query {
comments(first: Int, commentId: Int, postId: Int): [Comment]
albums(first: Int, albumId: Int, userId: Int): [Album]
photos(first: Int, photoId: Int, albumId: Int): [Photo]
todos(first: Int, todoId: Int, userId: Int): [Todo]
}
2 changes: 1 addition & 1 deletion src/users/users.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { JsonplaceholderModule } from 'src/jsonplaceholder/jsonplaceholder.modul
imports: [
forwardRef(() => PostsModule),
forwardRef(() => AlbumsModule),
TodosModule,
forwardRef(() => TodosModule),
JsonplaceholderModule
],
providers: [UsersResolver, UserService],
Expand Down

0 comments on commit 4c59a7c

Please sign in to comment.