diff options
Diffstat (limited to 'models')
-rw-r--r-- | models/User.js | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/models/User.js b/models/User.js index fa3303f..44d9619 100644 --- a/models/User.js +++ b/models/User.js @@ -2,7 +2,14 @@ const mongoose = require("mongoose") const bcrypt = require('bcryptjs') const {nanoid} = require('nanoid') -const userResponse = u => ({_id: u._id, email: u.email, isVerified: u.isVerified, noteList: u.noteList}) +const userResponse = u => ({ + _id: u._id, + email: u.email, + isVerified: u.isVerified, + noteList: u.noteList, + theme: u.theme, + language: u.language +}) const userSchema = new mongoose.Schema({ email: { @@ -38,6 +45,8 @@ const userSchema = new mongoose.Schema({ ref: "NoteList", required: true, }, + theme: {type: String, default: () => 'green'}, + language: {type: String, default: () => 'en'}, created_at: {type: Date, default: Date.now}, updated_at: {type: Date, default: Date.now} }) @@ -78,6 +87,16 @@ userSchema.statics.verifyUser = async function (_id, key){ return userResponse(user) } +userSchema.statics.saveSettings = async function ({_id, theme, language}){ + const user = await User.findOneAndUpdate({_id}, {theme, language}, {new: true}) + + if (!user) { + throw new Error('Could not save settings') + } + + return userResponse(user) +} + userSchema.statics.state = async function (_id){ const user = await User.findOne({_id}) |