Fix profile update persistence and stale cache

This commit is contained in:
Adolfo Reyna
2026-02-20 22:05:43 -05:00
parent bbc8c36439
commit e13678ad56
2 changed files with 26 additions and 11 deletions

View File

@@ -23,7 +23,9 @@ userDB = (DB) => {
DB.updateProfile = async (profileid, profileObj) => { DB.updateProfile = async (profileid, profileObj) => {
let tempProfile = profileObj.toObj(); let tempProfile = profileObj.toObj();
const query = { _id: profileid }; if (!DB.ObjectID.isValid(profileid)) return false;
const _id = DB.ObjectID(profileid);
const query = { _id };
const update = { const update = {
$set: { $set: {
profile: tempProfile.profile, profile: tempProfile.profile,
@@ -34,6 +36,7 @@ userDB = (DB) => {
console.log(err); console.log(err);
return false; return false;
}); });
if (userProfileCache[profileid]) delete userProfileCache[profileid];
return r; return r;
} }

View File

@@ -760,16 +760,28 @@ DB.getDB.then((DB) => {
* type: string * type: string
*/ */
router.post("/myProfile", async (req, res) => { router.post("/myProfile", async (req, res) => {
let profile = { try {
userid: getUserId(req), let profile = {
profile: req.body.profile, userid: getUserId(req),
data: req.body.data profile: req.body.profile,
}; data: req.body.data
let profileObj = new Profile(profile); //validates profile };
DB.updateProfile(getProfileId(req), profileObj); let profileObj = new Profile(profile); //validates profile
return res.json({ const updateRes = await DB.updateProfile(getProfileId(req), profileObj);
status: "ok" if (!updateRes || !updateRes.matchedCount) {
}); return res.status(400).json({
status: "Could not update profile"
});
}
return res.json({
status: "ok"
});
} catch (error) {
console.error("Error updating myProfile", error);
return res.status(500).json({
status: "Internal server error"
});
}
}); });
/** /**