#Error: "Cart" defined in resolvers, but not in schema

5 messages · Page 1 of 1 (latest)

median river
#

I have a Resolver (carts) which has mutation addItemstoCart, and resolver field (products), i think the issue originates with the ResolveField section (products),
when i comment it, the issues is no more. More details on comments,

#
// Resolver
@Resolver(() => Cart)
export class CartsResolver {
  constructor(
    private readonly cartsService: CartsService,
    private readonly productsService: ProductsService,
  ) {}
  @Query((returns) => ResponseAddToCart)
  @UseGuards(JwtAuthGuard)
  carts(@GetUser() user: User) {
    return this.cartsService.findCartOfUser(user.id);
  }
  @Mutation(() => ResponseAddToCart)
  @UseGuards(JwtAuthGuard)
  async addItemsToCart(
    @Args('addItemsToCart') itemsInput: CartInputArray,
    @GetUser() user: User,
  ) {
    await this.cartsService.addItemsToCart(user.id, itemsInput.array);
    const updatedCart = await this.cartsService.findCartOfUser(user.id);
    return updatedCart.id;
  }
  // this is the products (IF I COMMENT THIS, ERROR GOES AWAY)
  @ResolveField('products', () => [Product])
  async getProducts(@Parent() cart: Cart): Promise<Array<Product>> {
    return await this.productsService.findProductsFromCart(cart.id);
  }

}```
#
// product entity
@ObjectType()
@Entity('products')
export class Product {
  @PrimaryGeneratedColumn('uuid')
  @Field(() => ID)
  id: string;

  @Column()
  @Field()
  name: string;

  @Column()
  @Field()
  description: string;

  @Column()
  @Field(() => Float)
  price: number;

  @Column({
    type: 'boolean',
    default: true,
  })
  @Field(() => Boolean)
  is_veg: boolean;

  @Column()
  @Field()
  category_id: string;

  // relations
  @ManyToOne(() => Category, (category) => category.products, {
    onDelete: 'CASCADE',
  })
  @JoinColumn({ name: 'category_id' })
  @Field(() => Category)
  category: Category;
}```
#
// cart entity
@ObjectType()
@Entity('carts')
export class Cart {
  @PrimaryGeneratedColumn('uuid')
  @Field()
  id: string;

  @Column()
  @Field()
  user_id: string;

  @OneToOne(() => User)
  @Field(() => User)
  @JoinColumn({
    name: 'user_id',
  })
  user: User;

  @ManyToMany(() => Product)
  @JoinTable({
    name: 'carts_products',
    joinColumn: {
      name: 'cart_id',
      referencedColumnName: 'id',
    },
    inverseJoinColumn: {
      name: 'product_id',
      referencedColumnName: 'id',
    },
  })
  @Field(() => [Product])
  products: Product[];
}```
#

Error: "Cart" defined in resolvers, but not in schema