Skip to content

Commit 1afcdc6

Browse files
committed
components: coupon[controller]
1 parent 057abb1 commit 1afcdc6

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import { catchAsyncError } from '../../utils/catch_async_error';
2+
import { AppError } from '../../utils/app_error';
3+
import { deleteOne } from '../../handler/factor';
4+
import { ApiFeatures } from '../../utils/api_feature';
5+
import { couponModel } from '../../models/coupon_model';
6+
7+
const createCoupon = catchAsyncError(async (req, res, next) => {
8+
const createCoupon = new couponModel(req.body);
9+
await createCoupon.save();
10+
11+
res.status(201).json({ message: "success", createCoupon });
12+
});
13+
14+
const getAllCoupons = catchAsyncError(async (req, res, next) => {
15+
let apiFeature = new ApiFeatures(couponModel.find(), req.query)
16+
.pagination()
17+
.fields()
18+
.filteration()
19+
.search()
20+
.sort();
21+
const PAGE_NUMBER = apiFeature.queryString.page * 1 || 1;
22+
const getAllCoupons = await apiFeature.mongooseQuery;
23+
24+
res
25+
.status(201)
26+
.json({ page: PAGE_NUMBER, message: "success", getAllCoupons });
27+
});
28+
29+
const updateCoupon = catchAsyncError(async (req, res, next) => {
30+
const { id } = req.params;
31+
const updateCoupon = await couponModel.findByIdAndUpdate(id, req.body, {
32+
new: true,
33+
});
34+
35+
updateCoupon && res.status(201).json({ message: "success", updateCoupon });
36+
37+
!updateCoupon && next(new AppError("Coupon was not found", 404));
38+
});
39+
40+
const deleteCoupon = deleteOne(couponModel, "Coupon");
41+
export {
42+
createCoupon,
43+
getAllCoupons,
44+
getSpecificCoupon,
45+
updateCoupon,
46+
deleteCoupon,
47+
};

0 commit comments

Comments
 (0)