Skip to content

Commit a1c4eea

Browse files
committed
components: user[controller + routes]
1 parent 02f89c6 commit a1c4eea

File tree

2 files changed

+72
-0
lines changed

2 files changed

+72
-0
lines changed

components/user/user_controller.js

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
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 { userModel } from '../../models/user_model';
6+
import bcrypt from "bcrypt";
7+
8+
const addUser = catchAsyncError(async (req, res, next) => {
9+
const addUser = new userModel(req.body);
10+
await addUser.save();
11+
12+
res.status(201).json({ message: "success", addUser });
13+
});
14+
15+
const getAllUsers = catchAsyncError(async (req, res, next) => {
16+
let apiFeature = new ApiFeatures(userModel.find(), req.query)
17+
.pagination()
18+
.fields()
19+
.filteration()
20+
.search()
21+
.sort();
22+
const PAGE_NUMBER = apiFeature.queryString.page * 1 || 1;
23+
const getAllUsers = await apiFeature.mongooseQuery;
24+
25+
res.status(201).json({ page: PAGE_NUMBER, message: "success", getAllUsers });
26+
});
27+
28+
const updateUser = catchAsyncError(async (req, res, next) => {
29+
const { id } = req.params;
30+
const updateUser = await userModel.findByIdAndUpdate(id, req.body, {
31+
new: true,
32+
});
33+
34+
updateUser && res.status(201).json({ message: "success", updateUser });
35+
36+
!updateUser && next(new AppError("User was not found", 404));
37+
});
38+
39+
const changeUserPassword = catchAsyncError(async (req, res, next) => {
40+
const { id } = req.params;
41+
req.body.passwordChangedAt = Date.now();
42+
console.log(req.body.passwordChangedAt);
43+
const changeUserPassword = await userModel.findByIdAndUpdate(id, req.body, {
44+
new: true,
45+
});
46+
47+
changeUserPassword &&
48+
res.status(201).json({ message: "success", changeUserPassword });
49+
50+
!changeUserPassword && next(new AppError("User was not found", 404));
51+
});
52+
const deleteUser = deleteOne(userModel, "user");
53+
54+
export { addUser, getAllUsers, updateUser, deleteUser, changeUserPassword };

components/user/user_routes.js

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import express from "express";
2+
import * as User from "./user_controller.js";
3+
import { validate } from '../../middleware/validation.js';
4+
5+
import {
6+
addUserValidation,
7+
changeUserPasswordValidation,
8+
deleteUserValidation,
9+
updateUserValidation,
10+
} from "./user_validation.js";
11+
12+
const userRouter = express.Router();
13+
14+
userRouter.route("/").post(validate(addUserValidation), User.addUser).get(User.getAllUsers);
15+
16+
userRouter.route("/:id").put(validate(updateUserValidation), User.updateUser).delete(validate(deleteUserValidation), User.deleteUser).patch(validate(changeUserPasswordValidation), User.changeUserPassword);
17+
18+
export default userRouter;

0 commit comments

Comments
 (0)