update preferences server side

This commit is contained in:
catarak 2016-08-09 14:20:54 -04:00
parent c76b1353c3
commit 9f9425c5e9
4 changed files with 29 additions and 9 deletions

View file

@ -51,5 +51,7 @@ export const DELETE_FILE = 'DELETE_FILE';
export const SHOW_EDIT_FILE_NAME = 'SHOW_EDIT_FILE_NAME';
export const HIDE_EDIT_FILE_NAME = 'HIDE_EDIT_FILE_NAME';
export const TOGGLE_AUTOSAVE = 'SET_AUTOSAVE';
// eventually, handle errors more specifically and better
export const ERROR = 'ERROR';

View file

@ -82,3 +82,10 @@ export function indentWithSpace() {
}
};
}
export function setAutosave(value) {
return {
type: ActionTypes.SET_AUTOSAVE,
value
};
}

View file

@ -3,7 +3,8 @@ import * as ActionTypes from '../../../constants';
const initialState = {
fontSize: 18,
indentationAmount: 2,
isTabIndent: true
isTabIndent: true,
autosave: true
};
const preferences = (state = initialState, action) => {

View file

@ -30,13 +30,23 @@ export function createUser(req, res, next) {
}
export function updatePreferences(req, res) {
User.findByIdAndUpdate(req.user._id,
{
$set: req.body
User.findById(req.user.id, (err, user) => {
if (err) {
return res.status(500).json({error: err});
}
if (!user){
return res.status(404).json({error: 'Document not found'});
}
const preferences = Object.assign({}, user.preferences, req.body.preferences);
user.preferences = preferences;
user.save((err) => {
if (err) {
return res.status(500).json({error: err});
}
return res.json(user.preferences);
});
})
.populate('preferences')
.exec((err, updatedPreferences) => {
if (err) return res.json({ success: false });
return res.json(updatedPreferences);
});
}