33 lines
1.1 KiB
JavaScript
33 lines
1.1 KiB
JavaScript
const Message = require("../models/message.js");
|
|
const User = require("../models/user.js");
|
|
const asyncHandler = require("express-async-handler");
|
|
|
|
exports.index = asyncHandler(async (req, res, next) => {
|
|
// if user is logged in
|
|
if (req.user) {
|
|
// gets messages addressed to user from database
|
|
let DMs = await Message.find({ to: req.user.username }).lean().exec();
|
|
// replaces from field with actual user
|
|
for (let i = 0; i < DMs.length; i++) {
|
|
const user = await User.findOne({ username: DMs[i].from }).lean().exec();
|
|
DMs[i].from = user;
|
|
}
|
|
// gets messages addressed to all chat from database
|
|
const allChat = await Message.find({ to: "all" }).lean().exec();
|
|
// replaces from field with actual user
|
|
for (let z = 0; z < allChat.length; z++) {
|
|
const user = await User.findOne({ username: allChat[z].from })
|
|
.lean()
|
|
.exec();
|
|
allChat[z].from = user;
|
|
}
|
|
// render index page
|
|
return res.render("index", {
|
|
DMs: DMs,
|
|
allChat: allChat,
|
|
user: req.user,
|
|
});
|
|
}
|
|
// otherwise redirect to login page
|
|
res.redirect("/user/login");
|
|
});
|