index.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import mongoose from "mongoose";
  2. import {
  3. RecommendedProduct
  4. } from "../../../models";
  5. import {
  6. DeleteRecommendedProductResult,
  7. DeleteRecommendedProductInput
  8. } from "./types";
  9. const deleteRecommendedProduct = async (userID: string, input: DeleteRecommendedProductInput): Promise<DeleteRecommendedProductResult> => {
  10. try {
  11. const {
  12. recommendedProductIDs
  13. } = input;
  14. if (recommendedProductIDs.length === 0) {
  15. return {
  16. message: "recommendedProductIDs-cannot-be-empty",
  17. code: 400
  18. };
  19. }
  20. const objectIdArray = recommendedProductIDs.map(id => new mongoose.Types.ObjectId(id));
  21. const result = await RecommendedProduct.deleteMany({
  22. _id: {
  23. $in: objectIdArray
  24. },
  25. userID: userID
  26. });
  27. if (result.deletedCount === 0) {
  28. return {
  29. message: "recommended-product-not-found-or-unauthorized",
  30. code: 404
  31. };
  32. }
  33. return {
  34. message: "recommended-product-deleted-successfully",
  35. code: 200
  36. };
  37. } catch (error) {
  38. console.error("DeleteRecommendedProduct action error:", error);
  39. return {
  40. message: "internal-server-error",
  41. code: 500
  42. };
  43. }
  44. };
  45. export default deleteRecommendedProduct;