81 lines
2.6 KiB
JavaScript
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 });
|
|
}
|
|
};
|