Nest JS: Object is possibly ‘undefined’ in GraphQL

Nest JS: Object is possibly ‘undefined’ in GraphQL


0

I tried to make the subscription update course in the nest js, but it turns out error Object is possibly ‘undefined’ in this line of code const course = await this.courseService.findOne({ id: variables.courseId }); below is my course.resolver.ts

@Subscription('courseUpdated', {
    resolve: (value) => value,
    filter: async (payload, variables) => {
      const course = await this.courseService.findOne({ id: variables.courseId });
      if (!course) {
        throw new NotFoundException('Course not found');
      }
      if (course.creatorId !== variables.userId) {
        throw new ForbiddenException('Course not owned by you');
      }
      return payload.courseId === variables.courseId;
    },
  })
  courseUpdated(
    @Args('courseId') courseId: string,
    @Args('userId') userId: string,
  ) {
    return pubSub.asyncIterator(`course:${courseId}`);
  }

Here is the piece of code in my course.graphql

type Course {
  id: String
  title: String
  objective: [String!]
  description: String!
  language: String
  category: String!
  tone: String!
  modality: String!
  classSize: String!
  topics: [String!]
  duration: Int!
  durationLesson: Int!
  creatorId: String!

  outline: CourseOutline
  detailedOutline: CourseDetailedOutline

  createdAt: DateTime!
  updatedAt: DateTime!

  audience: Audience!
}

input UpdateCourse {
  title: String
  objective: [String!]
  description: String
  language: String
  category: String
  tone: String
  modality: String
  classSize: String
  topics: [String!]
  duration: Int
  durationLesson: Int
  audience: CreateAudienceInput

  outline: UpdateCourseOutline
  detailedOutline: UpdateCourseDetailedOutline
}

type Subscription {
     courseUpdated(courseId: String!): Course!
    }

I read a lot on stackoverflow but still couldn’t solve it. Yes indeed some of the value is optional, but how to solve it.

Share
Improve this question

2

  • Which line is showing the error?

    – VLAZ

    36 mins ago

  • const course = await this.courseService.findOne({ id: variables.courseId }); in this line

    – aldoprogrammer

    27 mins ago


Load 7 more related questions


Show fewer related questions

0

Reset to default



Leave a Reply

Your email address will not be published. Required fields are marked *