Sindbad~EG File Manager

Current Path : /home/infinitibizsol/.trash/controllers.4/
Upload File :
Current File : /home/infinitibizsol/.trash/controllers.4/imageUploadController copy.js

const { v2: cloudinary } = require("cloudinary");
const { CloudinaryStorage } = require("multer-storage-cloudinary");
const multer = require("multer");
const path = require("path");
const fsPromises = require("fs").promises;

// Configuring your Cloudinary credentials
cloudinary.config({
  cloud_name: process.env.CLOUDINARY_CLOUD_NAME,
  api_key: process.env.CLOUDINARY_API_KEY,
  api_secret: process.env.CLOUDINARY_API_SECRET,
});

// Setting up Cloudinary storage for multer
const storage = new CloudinaryStorage({
  cloudinary: cloudinary,
  params: {
    folder: "upload/", // The name of the folder in cloudinary
    // allowed_formats: ["jpg", "png"],
  },
});

const upload = multer({ storage: storage });

const extractImageIds = (req, res, next) => {
  if (req.files.length > 0) {
    // Map over `req.files.data` to extract the image IDs
    req.imageIds = req.files.map((file) => file.filename.split("/").pop());
  } else {
    req.imageIds = [];
  }
  next();
};

const deleteImageFromLocal = async (fileName) => {
  try {
    await fsPromises.unlink(path.join("./", "uploads", fileName));
    return true;
  } catch (error) {
    console.log(`warning message:${error}`);
  }
};

// Delete image function using async/await
async function deleteImage(publicId) {
  try {
    let result = await cloudinary.uploader.destroy(`upload/${publicId}`);
    console.log("Image delete result:", result);
  } catch (error) {
    console.log("Error in deleting image:", error);
  }
}
async function deleteBulkImages(imagesArray) {
  try {
    const updatedImagesArray = imagesArray.map(
      (imageId) => `upload/${imageId.imageUrl}`
    );

    let result = await cloudinary.api.delete_resources(updatedImagesArray, {
      type: "upload",
      resource_type: "image",
    });
    return result.deleted;
  } catch (error) {
    console.log("Error in deleting image:", error);
  }
}

module.exports = {
  upload,
  deleteImageFromLocal,
  extractImageIds,
  deleteImage,
  deleteBulkImages,
};

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists