45 lines
1.3 KiB
JavaScript
45 lines
1.3 KiB
JavaScript
const Banner = require('../models/Banner');
|
|
const { successResponse, errorResponse } = require('../utils/apiResponse');
|
|
|
|
const getBanners = async (req, res, next) => {
|
|
try {
|
|
const banners = await Banner.find({ isActive: true }).sort({ displayOrder: 1 });
|
|
return successResponse(res, 'Hero banners retrieved', banners);
|
|
} catch (error) {
|
|
next(error);
|
|
}
|
|
};
|
|
|
|
const createBanner = async (req, res, next) => {
|
|
try {
|
|
const banner = new Banner(req.body);
|
|
const saved = await banner.save();
|
|
return successResponse(res, 'Banner created', saved, 201);
|
|
} catch (error) {
|
|
next(error);
|
|
}
|
|
};
|
|
|
|
const updateBanner = async (req, res, next) => {
|
|
try {
|
|
const banner = await Banner.findByIdAndUpdate(req.params.id, req.body, { new: true });
|
|
if (!banner) return errorResponse(res, 'Banner not found', [], 404);
|
|
return successResponse(res, 'Banner updated', banner);
|
|
} catch (error) {
|
|
next(error);
|
|
}
|
|
};
|
|
|
|
const deleteBanner = async (req, res, next) => {
|
|
try {
|
|
const banner = await Banner.findByIdAndDelete(req.params.id);
|
|
if (!banner) return errorResponse(res, 'Banner not found', [], 404);
|
|
return successResponse(res, 'Banner deleted');
|
|
} catch (error) {
|
|
next(error);
|
|
}
|
|
};
|
|
|
|
module.exports = { getBanners, createBanner, updateBanner, deleteBanner };
|
|
|