aboutsummaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorGravatar piotrruss <mail@pruss.it> 2021-08-22 14:33:54 +0200
committerGravatar piotrruss <mail@pruss.it> 2021-08-29 15:35:49 +0200
commit9f74c550927671f4ded301d0cf3e9d592716375c (patch)
tree6075bead5939bfb9c3b6137fc5ef865f088b57cb /models
parent71cc09db93ec9b079a30593e14ca57c98fdc94ac (diff)
downloadmy_apps-9f74c550927671f4ded301d0cf3e9d592716375c.tar.gz
my_apps-9f74c550927671f4ded301d0cf3e9d592716375c.tar.bz2
my_apps-9f74c550927671f4ded301d0cf3e9d592716375c.zip
settings
Diffstat (limited to 'models')
-rw-r--r--models/User.js21
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})