2024-03-05 10:20:36 +00:00

41 lines
849 B
JavaScript
Executable File

import lodash from "lodash"
import { User } from "@shared-classes/DbModels"
const publicGetters = [
"_id",
"username",
"fullName",
"avatar",
"roles",
"badges",
"cover",
"verified",
"description",
"links",
"createdAt",
]
export default {
method: "GET",
route: "/:user_id/data",
middlewares: ["withAuthentication"],
fn: async (req, res) => {
let user = await User.findOne({
_id: req.params.user_id,
})
if (!user) {
return res.status(404).json({ error: "User not exists" })
}
if (req.user.roles.includes("admin")) {
return res.json(user)
}
if (req.user._id.toString() !== user._id.toString()) {
user = lodash.pick(user, publicGetters)
}
return res.json(user)
}
}