wishlist.resolver.ts 1.0 KB

123456789101112131415161718192021222324252627282930313233
  1. import { Args, Mutation, Query, Resolver } from '@nestjs/graphql';
  2. import { Allow, Ctx, Permission, RequestContext, Transaction } from '@vendure/core';
  3. import { WishlistItem } from '../entities/wishlist-item.entity';
  4. import { WishlistService } from '../service/wishlist.service';
  5. @Resolver()
  6. export class WishlistShopResolver {
  7. constructor(private wishlistService: WishlistService) {}
  8. @Query()
  9. @Allow(Permission.Owner)
  10. activeCustomerWishlist(@Ctx() ctx: RequestContext) {
  11. return this.wishlistService.getWishlistItems(ctx);
  12. }
  13. @Mutation()
  14. @Transaction()
  15. @Allow(Permission.Owner)
  16. async addToWishlist(
  17. @Ctx() ctx: RequestContext,
  18. @Args() { productVariantId }: { productVariantId: string },
  19. ) {
  20. return this.wishlistService.addItem(ctx, productVariantId);
  21. }
  22. @Mutation()
  23. @Transaction()
  24. @Allow(Permission.Owner)
  25. async removeFromWishlist(@Ctx() ctx: RequestContext, @Args() { itemId }: { itemId: string }) {
  26. return this.wishlistService.removeItem(ctx, itemId);
  27. }
  28. }