Skip to content

Commit

Permalink
UPDATE: setup routes in app.js
Browse files Browse the repository at this point in the history
  • Loading branch information
pratik9333 committed Jun 8, 2022
1 parent 1234188 commit 3d9f2fa
Show file tree
Hide file tree
Showing 8 changed files with 54 additions and 49 deletions.
4 changes: 2 additions & 2 deletions api/friend.api.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ const {
const isLoggedIn = require("../middlewares/authenticate.middleware");

//send friend request
router.route("/user/request/friend/:userId").put(isLoggedIn, sendFriendRequest);
router.route("/request/:userId").put(isLoggedIn, sendFriendRequest);

//add friend
router.route("/user/add/friend/:userId").put(isLoggedIn, addFriend);
router.route("/add/:userId").put(isLoggedIn, addFriend);

module.exports = router;
10 changes: 7 additions & 3 deletions api/user.api.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,21 @@ const {
getUserDashboard,
updateUserDetails,
getUsers,
getLeaderBoardData,
} = require("../controllers/user.controller");

const isLoggedIn = require("../middlewares/authenticate.middleware");

//get user dashboard
router.route("/user/dashboard").get(isLoggedIn, getUserDashboard);
router.route("/dashboard").get(isLoggedIn, getUserDashboard);

//update user
router.route("/user").put(isLoggedIn, updateUserDetails);
router.route("/").put(isLoggedIn, updateUserDetails);

//get users
router.route("/users").get(isLoggedIn, getUsers);
router.route("/").get(isLoggedIn, getUsers);

// get leaderboard data
router.route("/leaderboard").get(isLoggedIn, getLeaderBoardData);

module.exports = router;
5 changes: 1 addition & 4 deletions api/vote.api.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,6 @@ const {
const isLoggedIn = require("../middlewares/authenticate.middleware");

//rate friend
router.route("/user/rate/:action/:userId").put(isLoggedIn, rateUser);

// get leaderboard data
router.route("/users/leaderboard").get(isLoggedIn, getLeaderBoardData);
router.route("/user/:action/:userId").put(isLoggedIn, rateUser);

module.exports = router;
15 changes: 8 additions & 7 deletions app.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ const express = require("express");
const app = express();
const cookieParser = require("cookie-parser");
const fileUpload = require("express-fileupload");
const AppError = require("./utils/Errors/customError");

//regular middleware
app.use(express.json());
Expand All @@ -29,12 +28,11 @@ app.get("/", (req, res) => {

//import all routes here
const user = require("./api/user.api");
const User = require("./models/User.model");
const friend = require("./api/friend.api");
const vote = require("./api/vote.api");
const auth = require("./api/auth.api");

// handling error if any of routes does not match
app.all("*", (req, res, next) => {
next(new AppError(`Can't find ${req.originalUrl} on this server!`, 404));
});
const User = require("./models/User.model");

// scheduler to remove expired rated users
app.put("/api/task", async (req, res) => {
Expand Down Expand Up @@ -62,6 +60,9 @@ app.put("/api/task", async (req, res) => {
});

//router middleware
app.use("/api/v1", user);
app.use("/api/v1/user", user);
app.use("/api/v1/friend", friend);
app.use("/api/v1/rate", user);
app.use("/api/v1", auth);

module.exports = app;
29 changes: 29 additions & 0 deletions controllers/user.controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -130,3 +130,32 @@ exports.getUsers = async (req, res) => {
.json({ error: "Server has occured some problem, please try again" });
}
};

exports.getLeaderBoardData = async (req, res) => {
try {
const usersCount = await User.countDocuments();
const resultPerPage = 10;

const userObj = new Query(User.find(), req.query);

userObj.sort();

userObj.pager(resultPerPage);

let Users = await userObj.base;
let filteredUsers = Users.length;

return res.status(200).json({
success: true,
data: Users,
filteredUsers,
usersCount,
});
} catch (error) {
console.log(error);
return res.status(400).json({
success: false,
data: error.message,
});
}
};
32 changes: 3 additions & 29 deletions controllers/vote.controller.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
const Query = require("../utils/query");
const User = require("../models/User.model");

// 1 min = 60,000 milliseconds
const oneMinToMilli = 60_000;

const updateExpiryTimeForRating = 2 * oneMinToMilli;

exports.rateUser = async (req, res) => {
Expand Down Expand Up @@ -58,32 +61,3 @@ exports.rateUser = async (req, res) => {
.json({ error: "Server has occured some problem, please try again" });
}
};

exports.getLeaderBoardData = async (req, res) => {
try {
const usersCount = await User.countDocuments();
const resultPerPage = 10;

const userObj = new Query(User.find(), req.query);

userObj.sort();

userObj.pager(resultPerPage);

let Users = await userObj.base;
let filteredUsers = Users.length;

return res.status(200).json({
success: true,
data: Users,
filteredUsers,
usersCount,
});
} catch (error) {
console.log(error);
return res.status(400).json({
success: false,
data: error.message,
});
}
};
4 changes: 2 additions & 2 deletions models/Friends.model.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ const mongoose = require("mongoose");

const friendSchema = new mongoose.Schema(
{
requester: { type: Schema.Types.ObjectId, ref: "User" },
recipient: { type: Schema.Types.ObjectId, ref: "User" },
requester: { type: mongoose.Schema.ObjectId, ref: "User" },
recipient: { type: mongoose.Schema.ObjectId, ref: "User" },
status: {
type: Number,
enums: [
Expand Down
4 changes: 2 additions & 2 deletions models/Votes.model.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ const mongoose = require("mongoose");

const votingSchema = new mongoose.Schema(
{
user: { type: Schema.Types.ObjectId, ref: "User" },
voter: { type: Schema.Types.ObjectId, ref: "User" },
user: { type: mongoose.Schema.ObjectId, ref: "User" },
voter: { type: mongoose.Schema.ObjectId, ref: "User" },
status: {
type: Number,
enums: [
Expand Down

0 comments on commit 3d9f2fa

Please sign in to comment.