From eb8d59da25c7cc2436f813d9a5c769ae0a4aa8f8 Mon Sep 17 00:00:00 2001 From: TheFlow Date: Fri, 24 Oct 2025 10:31:19 +1300 Subject: [PATCH] fix(submissions): remove User model populate calls - User is also a native MongoDB class, not Mongoose model - Removed all .populate() calls for createdBy, lastUpdatedBy, notes.author - These were causing MissingSchemaError for User model - Submissions can be returned without populated user data --- .claude/session-state.json | 18 +++++++++--------- src/controllers/submissions.controller.js | 14 ++++---------- 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/.claude/session-state.json b/.claude/session-state.json index 31d2bfe3..d36c2ec0 100644 --- a/.claude/session-state.json +++ b/.claude/session-state.json @@ -43,8 +43,8 @@ "last_deliberation": null }, "FileEditHook": { - "timestamp": "2025-10-23T21:24:52.570Z", - "file": "/home/theflow/projects/tractatus/src/models/Analytics.model.js", + "timestamp": "2025-10-23T21:31:02.525Z", + "file": "/home/theflow/projects/tractatus/src/controllers/submissions.controller.js", "result": "passed" }, "FileWriteHook": { @@ -58,25 +58,25 @@ "tokens": 30000 }, "alerts": [], - "last_updated": "2025-10-23T21:24:52.570Z", + "last_updated": "2025-10-23T21:31:02.525Z", "initialized": true, "framework_components": { "CrossReferenceValidator": { "message": 0, "tokens": 0, - "timestamp": "2025-10-23T21:27:54.923Z", - "last_validation": "2025-10-23T21:27:54.923Z", - "validations_performed": 706 + "timestamp": "2025-10-23T21:31:14.843Z", + "last_validation": "2025-10-23T21:31:14.843Z", + "validations_performed": 712 }, "BashCommandValidator": { "message": 0, "tokens": 0, "timestamp": null, - "last_validation": "2025-10-23T21:27:54.924Z", - "validations_performed": 362, + "last_validation": "2025-10-23T21:31:14.844Z", + "validations_performed": 365, "blocks_issued": 37 } }, - "action_count": 362, + "action_count": 365, "auto_compact_events": [] } \ No newline at end of file diff --git a/src/controllers/submissions.controller.js b/src/controllers/submissions.controller.js index 5a7421a8..75544092 100644 --- a/src/controllers/submissions.controller.js +++ b/src/controllers/submissions.controller.js @@ -81,10 +81,9 @@ async function getSubmissions(req, res) { if (status) query.status = status; if (publicationId) query.publicationId = publicationId; - // NOTE: BlogPost is a native MongoDB class, not a Mongoose model, - // so we can't use .populate() for blogPostId. Fetch blog post data separately if needed. + // NOTE: BlogPost and User are native MongoDB classes, not Mongoose models, + // so we can't use .populate() for them. Fetch data separately if needed. const submissions = await SubmissionTracking.find(query) - .populate('createdBy', 'email') .sort({ submittedAt: -1, createdAt: -1 }) .limit(parseInt(limit, 10)) .skip(parseInt(offset, 10)); @@ -137,10 +136,7 @@ async function getSubmissionById(req, res) { try { const { id } = req.params; - const submission = await SubmissionTracking.findById(id) - .populate('createdBy', 'email') - .populate('lastUpdatedBy', 'email') - .populate('notes.author', 'email'); + const submission = await SubmissionTracking.findById(id); if (!submission) { return res.status(404).json({ @@ -318,9 +314,7 @@ async function getSubmissionByBlogPost(req, res) { try { const { blogPostId } = req.params; - const submission = await SubmissionTracking.findOne({ blogPostId }) - .populate('createdBy', 'email') - .populate('lastUpdatedBy', 'email'); + const submission = await SubmissionTracking.findOne({ blogPostId }); if (!submission) { return res.status(404).json({