GIF89a
import { Template } from '../models/template.model.js';
import { ApiResponse } from '../utils/ApiResponse.js';
import fs from 'fs';
export const createTemplate = async (req, res) => {
const { userId, uploadedBy } = req.body;
const template = req.file?.path;
console.log(template);
// if (!template || !uploadedBy) {
// return res.status(400).json(new ApiResponse(400, "All fields are required"));
// }
try {
const data = await Template.create({
userId: userId,
template: template,
uploadedBy: uploadedBy
});
return res.json(new ApiResponse(201, data, "Template created successfully"));
} catch (error) {
console.log(error);
return res.status(500).json({ message: error.message });
}
};
export const getTemplates = async (req, res) => {
const { userId, type } = req.query;
let filter = {};
try {
if (type === 'admin') {
filter.uploadedBy = 'admin';
} else if (userId) {
filter = {
$or: [
{ userId: userId },
{ uploadedBy: 'admin' }
]
};
}
const templates = await Template.find(filter).sort({ createdAt: -1 });
return res.json(new ApiResponse(200, templates, "Templates fetched successfully"));
} catch (error) {
console.log(error);
return res.status(500).json({ message: error.message });
}
};
export const updateTemplate = async (req, res) => {
try {
const existingTemplate = await Template.findById(req.params.id);
if (!existingTemplate) {
return res.status(404).json(new ApiResponse(404, null, "Template not found"));
}
if (existingTemplate.template) {
fs.unlinkSync(existingTemplate.template);
}
const template = await Template.findByIdAndUpdate(
req.params.id,
req.body,
{ new: true }
);
return res.json(new ApiResponse(200, template, "Template updated successfully"));
} catch (error) {
console.log(error);
return res.status(500).json({ message: error.message });
}
};
export const deleteTemplate = async (req, res) => {
try {
const template = await Template.findById(req.params.id);
if (!template) {
return res.status(404).json(new ApiResponse(404, null, "Template not found"));
}
if (template.template) {
fs.unlinkSync(template.template);
}
await Template.findByIdAndDelete(req.params.id);
return res.json(new ApiResponse(200, template, "Template deleted successfully"));
} catch (error) {
console.log(error);
return res.status(500).json({ message: error.message });
}
};