Skip to content

Commit cff6332

Browse files
committed
routes testes and all bugs are fixed
1 parent 1a5a9e1 commit cff6332

File tree

6 files changed

+41
-18
lines changed

6 files changed

+41
-18
lines changed

src/controllers/user.controller.js

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,14 @@ import { User } from "../models/user.model.js";
55
import { uploadOnCloudinary } from "../utils/fileUploadsCloudinary.js";
66
import { ApiResponse } from "../utils/ApiResponse.js";
77
import jwt from "jsonwebtoken";
8+
import mongoose from "mongoose";
89
import { toBeDeletedAvatar } from "../utils/toBeDeletedAvatar.js";
910
import { deleteCoverImage } from "../utils/deleteCoverImage.js";
1011

12+
const testFunc = asyncHandler(async (req, res) => {
13+
return res.status(200).json(new ApiResponse(201, {}, "success full tested"));
14+
});
15+
1116
const options = {
1217
httpOnly: true,
1318
secure: true,
@@ -173,6 +178,7 @@ const loginUser = asyncHandler(async (req, res) => {
173178
const loggedOutUser = asyncHandler(async (req, res) => {
174179
// steps to logout user
175180
// 1. get user details from postman (as detals are mentioned in user model file)
181+
176182
await User.findByIdAndUpdate(
177183
req.user._id,
178184
{
@@ -191,7 +197,7 @@ const loggedOutUser = asyncHandler(async (req, res) => {
191197
});
192198

193199
// another controller for user end point for frontend side to refresh the access token to get login again
194-
const refreshAccessToken = asyncHandler(async (req, res, next) => {
200+
const refreshAccessToken = asyncHandler(async (req, res) => {
195201
// 1. get user details from postman (as detals are mentioned in user model file)
196202
// usually we get details from req.body or req.url so
197203
const incomingRefreshToken =
@@ -233,9 +239,10 @@ const refreshAccessToken = asyncHandler(async (req, res, next) => {
233239
}
234240
});
235241

236-
const changeCurrentUserPassword = asyncHandler(async (req, res, next) => {
242+
const changeCurrentUserPassword = asyncHandler(async (req, res) => {
237243
// take all required field from user (req.body)
238244
const { oldPassword, newPassword } = req.body;
245+
// console.log({ oldPassword });
239246

240247
// bcoz user is loggedin, means midddleware had run then (req.user = user) so find the user from user._id
241248
const user = await User.findById(req.user._id);
@@ -248,7 +255,7 @@ const changeCurrentUserPassword = asyncHandler(async (req, res, next) => {
248255
// change password
249256
user.password = newPassword;
250257
await user.save({ validateBeforeSave: false });
251-
258+
console.log("password changed");
252259
return res
253260
.status(200)
254261
.json(new ApiResponse(200, {}, "Password Changed SuccessFully !!!"));
@@ -269,10 +276,10 @@ const getCurrentUser = asyncHandler(async (req, res, next) => {
269276
const updateAccountDetails = asyncHandler(async (req, res) => {
270277
// take all required field from user (req.body)
271278
const { fullName, userName, email } = req.body;
272-
if (!(userName || fullName || email))
279+
if (!(userName && fullName && email))
273280
throw new ApiError(400, "All fields are required "); // 99 90 83 74 27
274281

275-
const user = User.findByIdAndUpdate(
282+
const user = await User.findByIdAndUpdate(
276283
req.user._id,
277284
{
278285
$set: {
@@ -289,13 +296,14 @@ const updateAccountDetails = asyncHandler(async (req, res) => {
289296
return res
290297
.status(200)
291298
.json(
292-
new ApiResponse(200, { user }, "Account Details Updated SuccessFully !!!")
299+
new ApiResponse(200, user, "Account Details Updated SuccessFully !!!")
293300
);
294301
});
295302

296303
const updateUserAvatar = asyncHandler(async (req, res) => {
304+
// console.log(req.file.path)
297305
// take all required field from user (req.body)
298-
const avatarLocalpath = req.file?.avatar?.path;
306+
const avatarLocalpath = req.file?.path;
299307
if (!avatarLocalpath) throw new ApiError(404, "Avatar file is required");
300308

301309
const avatar = await uploadOnCloudinary(avatarLocalpath);
@@ -312,7 +320,7 @@ const updateUserAvatar = asyncHandler(async (req, res) => {
312320
{ new: true }
313321
).select("-password");
314322

315-
toBeDeletedAvatar(avatarLocalpath);
323+
// toBeDeletedAvatar(avatarLocalpath);
316324

317325
return res
318326
.status(200)
@@ -322,7 +330,7 @@ const updateUserAvatar = asyncHandler(async (req, res) => {
322330
const updateCoverImage = asyncHandler(async (req, res) => {
323331
{
324332
// take all required field from user (req.body)
325-
const coverImageLocalpath = req.file?.coverImage?.path;
333+
const coverImageLocalpath = req.file?.path;
326334
if (!coverImageLocalpath)
327335
throw new ApiError(404, "cover Image file is missing");
328336

@@ -339,7 +347,7 @@ const updateCoverImage = asyncHandler(async (req, res) => {
339347
},
340348
{ new: true }
341349
).select("-password");
342-
deleteCoverImage(coverImageLocalpath);
350+
// deleteCoverImage(coverImageLocalpath);
343351
return res
344352
.status(200)
345353
.json(new ApiResponse(200, user, "cover Image Updated SuccessFully !!!"));
@@ -487,6 +495,7 @@ const getUserWatchHistory = asyncHandler(async (req, res) => {
487495
});
488496

489497
export {
498+
testFunc,
490499
registerUser,
491500
loginUser,
492501
loggedOutUser,

src/middlewares/auth.middleware.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,13 @@ export const verifyJWT = asyncHandler(async (req, res, next) => {
1111
(await req.header("Authorization")?.replace("Bearer ", ""));
1212

1313
if (!token) throw new ApiError(401, "Unauthorized Access");
14+
// console.log({ token });
1415

1516
// verify token
1617
const decodedToken = jwt.verify(token, process.env.ACCESS_TOKEN_SECRET);
1718

1819
// get user from token
19-
const user = User.findById(decodedToken?._id).select(
20+
const user = await User.findById(decodedToken?._id).select(
2021
"-password -refreshToken"
2122
);
2223
if (!user) throw new ApiError(401, "Invalid Access token");
@@ -27,6 +28,10 @@ export const verifyJWT = asyncHandler(async (req, res, next) => {
2728
// user is verified now proceed further
2829
next();
2930
} catch (err) {
30-
throw new ApiError(401, err?.message || "invalid access token");
31+
console.log(err);
32+
// if (err.name === "JsonWebTokenError") {
33+
// throw new ApiError(401, "Unauthorized Access");
34+
// }
35+
// throw new ApiError(401, err?.message || "invalid access token found !!!");
3136
}
3237
});

src/routes/user.routes.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {
1111
getUserChannelProfile,
1212
getUserWatchHistory,
1313
updateAccountDetails,
14+
testFunc,
1415
} from "../controllers/user.controller.js";
1516
import { upload } from "../middlewares/multer.middleware.js";
1617
import { verifyJWT } from "../middlewares/auth.middleware.js";
@@ -33,12 +34,13 @@ router.route("/register").post(
3334
registerUser
3435
);
3536

37+
router.route("/token").post(testFunc);
3638
router.route("/login").post(loginUser);
3739

3840
// secure routes
3941
router.route("/logout").post(verifyJWT, loggedOutUser);
4042

41-
router.route("/refreshtoken").post(refreshAccessToken);
43+
router.route("/refresh-token").post(refreshAccessToken);
4244

4345
router.route("/change-password").post(verifyJWT, changeCurrentUserPassword);
4446

@@ -50,7 +52,7 @@ router
5052
.route("/update-avatar")
5153
.patch(verifyJWT, upload.single("avatar"), updateUserAvatar);
5254
router
53-
.route("/update-cover-image")
55+
.route("/cover-image")
5456
.patch(verifyJWT, upload.single("coverImage"), updateCoverImage);
5557

5658
router.route("/c/:username").get(verifyJWT, getUserChannelProfile);

src/utils/ApiError.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ class ApiError extends Error {
1515
if (stack) {
1616
this.stack = stack;
1717
} else {
18-
console.log("errror captured");
1918
Error.captureStackTrace(this, this.constructor);
2019
}
2120
}

src/utils/deleteCoverImage.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import fs from "fs";
12
const deleteCoverImage = (path) => {
23
fs.unlink(path, (err) => err && console.log(err));
34
};

src/utils/toBeDeletedAvatar.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
1+
import fs from "fs";
2+
13
const toBeDeletedAvatar = (avatarLocalPath) => {
2-
fs.unlink(avatarLocalPath, (err) => {
3-
if (err) console.log(err);
4-
});
4+
try {
5+
fs.unlink(avatarLocalPath, (err) => {
6+
if (err) console.log(err);
7+
});
8+
} catch (err) {
9+
console.log("error while deleting local path");
10+
console.log(err);
11+
}
512
};
613

714
export { toBeDeletedAvatar };

0 commit comments

Comments
 (0)