Spaces:
Sleeping
Sleeping
Production Fix: Resolve fs ReferenceError in Multer, fix profile auth failure, and optimize controller lookups
5db933c | const User = require('../models/User'); | |
| const ErrorResponse = require('../utils/errorResponse'); | |
| const asyncHandler = require('../utils/asyncHandler'); | |
| // @desc Update user preferences (Mainframe Sync Fix) | |
| // @route PUT /api/users/preferences | |
| // @access Private | |
| exports.updatePreferences = asyncHandler(async (req, res, next) => { | |
| const { | |
| theme, preferredModel, temperature, techStack, | |
| cotMode, reasoningBudget, selfCritique, multiAgentMode, | |
| confidenceLevel, hallucinationGuard, debugMode | |
| } = req.body; | |
| const user = req.user; | |
| // Ensure preferences object exists | |
| if (!user.preferences) user.preferences = {}; | |
| // Standard Sync | |
| if (theme) user.preferences.theme = theme; | |
| if (preferredModel) user.preferences.preferredModel = preferredModel; | |
| if (temperature !== undefined) user.preferences.temperature = temperature; | |
| if (techStack) user.preferences.techStack = techStack; | |
| // Advanced Cognitive Sync | |
| if (cotMode) user.preferences.cotMode = cotMode; | |
| if (reasoningBudget !== undefined) user.preferences.reasoningBudget = reasoningBudget; | |
| if (selfCritique !== undefined) user.preferences.selfCritique = selfCritique; | |
| if (multiAgentMode) user.preferences.multiAgentMode = multiAgentMode; | |
| if (confidenceLevel) user.preferences.confidenceLevel = confidenceLevel; | |
| if (hallucinationGuard) user.preferences.hallucinationGuard = hallucinationGuard; | |
| if (debugMode !== undefined) user.preferences.debugMode = debugMode; | |
| // Save to Cloud (MongoDB Atlas) | |
| await user.save(); | |
| res.status(200).json({ | |
| success: true, | |
| data: user.preferences | |
| }); | |
| }); | |
| // @desc Get user profile | |
| // @route GET /api/users/profile | |
| // @access Private | |
| exports.getProfile = asyncHandler(async (req, res, next) => { | |
| const user = req.user; | |
| const profile = { | |
| name: user.name, | |
| role: user.role, | |
| isOwner: user.role === 'owner' || user.email === 'johanvoncd7@gmail.com', | |
| preferences: user.preferences, | |
| usage: { | |
| requestsToday: user.usage.requestsToday, | |
| limit: 75 | |
| } | |
| }; | |
| res.status(200).json({ | |
| success: true, | |
| data: profile | |
| }); | |
| }); | |