1

I am trying to learn how to use GraphQl.

I have created a query in my service and related resolver. I have run prisma generate on the back end and get no errors.

I cannot find a way to update the lib/graphql so that it includes the query I have made.

In my service.ts I have:

import { prisma } from "../../lib/prisma"
import { Service } from "typedi"
import { IssueInput } from "./inputs/create.input"
import { Resolver } from "type-graphql"
import { Issue } from "./issue.model"

@Service()
@Resolver(() => Issue)
export class IssueService {
  async createIssue(data: IssueInput) {
    return await prisma.issue.create({ data })
  }

  async getAllIssues() {
    return await prisma.issue.findMany()
  }

  async getAllClimateChangeIssues() {
    return await prisma.issue.findMany({where: {issueCategory: "CLIMATE_CHANGE"}}) 
  }

  async getIssue(id: string) {
    return await prisma.issue.findUnique({ where: { id } })
  }
}

In the resolver, I have:

import { Arg, Mutation, Query, Resolver } from "type-graphql"
import { Issue } from "./issue.model"
import { IssueService } from "./issue.service"
import { IssueInput } from "./inputs/create.input"
import { Inject, Service } from "typedi"

@Service()
@Resolver(() => Issue)
export default class IssueResolver {
  @Inject(() => IssueService)
  issueService: IssueService

  @Query(() => [Issue])
  async allIssues() {
    return await this.issueService.getAllIssues()
  }

  @Query(() => [Issue])
  async allClimateChangeIssues() {
    return await this.issueService.getAllClimateChangeIssues()
  }


  @Query(() => Issue)
  async issue(@Arg("id") id: string) {
    return await this.issueService.getIssue(id)
  }

  @Mutation(() => Issue)
  async createIssue(@Arg("data") data: IssueInput) {
    return await this.issueService.createIssue(data)
  }
}

What other steps are required to update the lib/grapqhl?

Mel
  • 2,481
  • 26
  • 113
  • 273

0 Answers0