express-message-board/controllers/index.js
ak f36b48f4ce progress update
image uploading works
hosted at deta space
2023-09-20 18:00:32 -07:00

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");
});