|
|
|
@ -29,6 +29,12 @@ var utils = require('./../public/src/utils.js'),
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
User.isEmailAvailable(email, function(available) {
|
|
|
|
|
if(!available) {
|
|
|
|
|
callback(null, 0);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
RDB.incr('global:next_user_id', function(err, uid) {
|
|
|
|
|
RDB.handle(err);
|
|
|
|
|
|
|
|
|
@ -81,6 +87,7 @@ var utils = require('./../public/src/utils.js'),
|
|
|
|
|
callback(null, uid);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
User.delete = function(uid, callback) {
|
|
|
|
@ -174,15 +181,50 @@ var utils = require('./../public/src/utils.js'),
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
User.updateProfile = function(uid, data, callback) {
|
|
|
|
|
User.updateProfile = function(socket, uid, data) {
|
|
|
|
|
|
|
|
|
|
var fields = ['email', 'fullname', 'website', 'location', 'birthday', 'signature'];
|
|
|
|
|
|
|
|
|
|
function isSignatureValid(next) {
|
|
|
|
|
if(data['signature'] !== undefined && data['signature'].length > 150) {
|
|
|
|
|
callback({error:'Signature can\'t be longer than 150 characters!'});
|
|
|
|
|
return;
|
|
|
|
|
next({error:'Signature can\'t be longer than 150 characters!'}, false);
|
|
|
|
|
} else {
|
|
|
|
|
next(null, true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function isEmailAvailable(next) {
|
|
|
|
|
if(data['email'] !== undefined) {
|
|
|
|
|
User.getUserField(uid, 'email', function(email) {
|
|
|
|
|
if(email !== data['email']) {
|
|
|
|
|
User.isEmailAvailable(data['email'], function(available) {
|
|
|
|
|
if(!available) {
|
|
|
|
|
next({error:'Email not available!'}, false);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
next(null, true);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
next(null, true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async.series([isSignatureValid, isEmailAvailable], function(err, results) {
|
|
|
|
|
if(err) {
|
|
|
|
|
socket.emit('event:alert', {
|
|
|
|
|
title: 'Error',
|
|
|
|
|
message: err.error,
|
|
|
|
|
type: 'error',
|
|
|
|
|
timeout: 2000
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
updateFields();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
function updateFields() {
|
|
|
|
|
for(var i = 0, key, ii = fields.length; i < ii; ++i) {
|
|
|
|
|
key = fields[i];
|
|
|
|
|
|
|
|
|
@ -198,7 +240,25 @@ var utils = require('./../public/src/utils.js'),
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
callback({});
|
|
|
|
|
socket.emit('event:alert', {
|
|
|
|
|
title: 'Success',
|
|
|
|
|
message: 'Your profile has been updated successfully!',
|
|
|
|
|
type: 'success',
|
|
|
|
|
timeout: 2000
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
User.isEmailAvailable = function(email, callback) {
|
|
|
|
|
RDB.exists('email:' + email + ':uid' , function(err, exists) {
|
|
|
|
|
if(!err) {
|
|
|
|
|
callback(exists !== 1);
|
|
|
|
|
return;
|
|
|
|
|
} else {
|
|
|
|
|
console.log(err);
|
|
|
|
|
callback(false);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
User.changePassword = function(socket, uid, data, callback) {
|
|
|
|
|