POC-server/controllers/HeroImage.controller.js
2025-01-29 11:03:36 +05:30

81 lines
2.6 KiB
JavaScript

import { PrismaClient } from "@prisma/client";
import CloudinaryUploadHandler from "../utils/CloudinaryClient.js";
const prisma = new PrismaClient();
export const getHeroImages = async (req, res) => {
try {
const coaches = await prisma.heroImages.findMany();
res.status(200).json({ status: 200, data: coaches });
} catch (error) {
res.status(500).json({ status: 500, message: error.message });
}
};
export const uploadHeroImages = async (req, res) => {
try {
const files = req.files;
const heroImages = files.map((file) => file.filename);
const CloudinaryURLs = await heroImages.map((item) =>
CloudinaryUploadHandler(`./uploads/${item}`)
);
Promise.all(CloudinaryURLs)
.then(async (results) => {
console.log("RTesults: ", results);
const newHeroImages = await prisma.heroImages.create({
data: {
urls: results,
},
});
return res
.status(201)
.json({ status: 201, data: newHeroImages });
})
.catch((error) =>
res.status(500).json({ status: 500, message: error.message })
);
} catch (error) {
res.status(500).json({ status: 500, message: error.message });
}
};
export const updateHeroImage = async (req, res) => {
console.log(`req--->`, req);
const { id, index } = req.params;
try {
const data = await prisma.heroImages.findUnique({ where: { id: id } });
console.log(`data---->`, data);
let dataArray = data.urls;
const fileName = req?.file?.filename;
const CloudinaryURL = await CloudinaryUploadHandler(
`./uploads/${fileName}`
);
console.log("Cloud", CloudinaryURL);
dataArray[index] = CloudinaryURL;
const newHeroImages = await prisma.heroImages.update({
where: { id },
data: {
urls: dataArray,
},
});
return res.status(200).json({ status: 200, data: newHeroImages });
} catch (error) {
res.status(500).json({ status: 500, message: error.message });
}
};
export const deleteHeroImage = async (req, res) => {
const { id } = req.params;
try {
await prisma.heroImages.delete({
where: { id: id },
});
res.status(200).json({
status: 200,
message: "Hero Image deleted successfully",
});
} catch (error) {
res.status(500).json({ status: 500, message: error.message });
}
};