deleteCartProductAction.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. "use server";
  2. import { REMOVE_CART_ITEM } from "@/graphql";
  3. import { serverGraphqlFetch } from "@utils/bagisto";
  4. import {deleteGuestCookie} from "@/server-service/guestCartTokenService";
  5. import type { RemoveCartItemData } from "@/types/cart/type";
  6. export async function deleteCartProductAction(cartItemId:number) {
  7. try{
  8. const response = await serverGraphqlFetch<RemoveCartItemData,{cartItemId:number}>({
  9. query: REMOVE_CART_ITEM,
  10. variables: {
  11. cartItemId: cartItemId
  12. },
  13. cache: "no-store",
  14. });
  15. if(!response.error) {
  16. const resCatData = response.data?.createRemoveCartItem?.removeCartItem ?? null;
  17. if(!resCatData || !resCatData?.itemsQty) {
  18. // 购物车空了,删除游客cookie
  19. deleteGuestCookie();
  20. }
  21. return {
  22. success: true,
  23. msg: '',
  24. cartData: response.data
  25. }
  26. } else {
  27. return {
  28. success: false,
  29. msg: response.error.message,
  30. cartData: null
  31. }
  32. }
  33. } catch(error) {
  34. return {
  35. success: false,
  36. msg: error instanceof Error ? error.message : 'Delete product failed!',
  37. cartData: null
  38. }
  39. }
  40. };