add some update statics

This commit is contained in:
Riley Davis
2016-11-03 11:25:09 -06:00
parent 97ae107be9
commit 73be4cfe28
4 changed files with 63 additions and 27 deletions
-1
View File
@@ -36,7 +36,6 @@
"yoda": [1],
"no-path-concat": [2],
"no-process-exit": [2],
"camelcase": [1],
"eol-last": [1],
"no-continue": [1],
"no-nested-ternary": [1],
+30
View File
@@ -0,0 +1,30 @@
These are some settings we're planning on implementing in the future.
I'm keeping them in this file for reference
```javascript
anonymous_users: {type: Boolean, default: false},
block_mute_enabled: {type: Boolean, default: false},
comment_count: {type: Boolean, default: false},
comment_editing_enabled: {type: Boolean, default: false},
comments_hidden: {type: Boolean, default: false},
community_guidelines: {type: Boolean, default: false},
detailed_flags: {type: Boolean, default: false},
emojis_enabled: {type: Boolean, default: false},
following: {type: Boolean, default: false},
likes_enabled: {type: Boolean, default: false},
mentions: {type: Boolean, default: false},
nested_replies: {type: Boolean, default: false},
notification_timeout: {type: Number, default: 4500},
permalinks: {type: Boolean, default: false},
post_button_text: {type: String, default: 'Post'},
pseudonyms: {type: Boolean, default: false},
public_profile: {type: Boolean, default: false},
reactions_enabled: {type: Boolean, default: false},
reply_button_text: {type: String, default: 'Reply'},
rich_content: {type: Boolean, default: false},
show_staff_picks: {type: Boolean, default: false},
up_down_voting: {type: Boolean, default: false},
user_badges: {type: Boolean, default: false},
user_mods_enabled: {type: Boolean, default: false},
user_stats_enabled: {type: Boolean, default: false}
```
+11 -26
View File
@@ -3,32 +3,17 @@ const uuid = require('uuid');
const Schema = mongoose.Schema;
const SettingSchema = new Schema({
anonymous_users: {type: Boolean, default: false},
block_mute_enabled: {type: Boolean, default: false},
comment_count: {type: Boolean, default: false},
comment_editing_enabled: {type: Boolean, default: false},
comments_hidden: {type: Boolean, default: false},
community_guidelines: {type: Boolean, default: false},
detailed_flags: {type: Boolean, default: false},
emojis_enabled: {type: Boolean, default: false},
following: {type: Boolean, default: false},
likes_enabled: {type: Boolean, default: false},
mentions: {type: Boolean, default: false},
nested_replies: {type: Boolean, default: false},
notification_timeout: {type: Number, default: 4500},
permalinks: {type: Boolean, default: false},
post_button_text: {type: String, default: 'Post'},
pseudonyms: {type: Boolean, default: false},
public_profile: {type: Boolean, default: false},
reactions_enabled: {type: Boolean, default: false},
reply_button_text: {type: String, default: 'Reply'},
rich_content: {type: Boolean, default: false},
show_staff_picks: {type: Boolean, default: false},
up_down_voting: {type: Boolean, default: false},
user_badges: {type: Boolean, default: false},
user_mods_enabled: {type: Boolean, default: false},
user_stats_enabled: {type: Boolean, default: false}
});
moderation: {type: String, enum: ['pre', 'post'], default: 'pre'},
}, {timestamps: {createdAt: 'created_at', updatedAt: 'updated_at'}});
SettingSchema.statics.getSettings = function () {
return this.findOne();
};
SettingSchema.statics.updateSettings = function (setting) {
return this.findOneAndUpdate({}, {$set: setting}, {new: true});
};
const Setting = mongoose.model('Setting', SettingSchema);
+22
View File
@@ -0,0 +1,22 @@
const express = require('express');
const router = express.Router();
const path = require('path');
const Setting = require(path.resolve(__dirname, 'models/setting'));
router.get('/settings', (req, res, next) => {
Setting.getSettings().then(settings => {
res.json(settings);
}).catch(error => {
next(error);
});
});
router.put('/settings', (req, res, next) => {
Setting.updateSettings(req.body).then(updatedSettings => {
res.json(updatedSettings);
}).catch(error => {
next(error);
});
});
module.exports = router;