Created
February 11, 2015 17:05
-
-
Save mborodov/cafca791ad8190e171a1 to your computer and use it in GitHub Desktop.
Метод регистрации пользователя
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Метод регистрации пользователя | |
register: function (req, res) { | |
logger.warn('Метод регистрации - старт'); | |
// Принимаем переменную email | |
var email = req.body.email; | |
var password = utils.generatePassword(); | |
var deviceToken = req.body.deviceToken; | |
//Убираем символы < и пробелы в deviceToken | |
if (deviceToken) { | |
deviceToken = deviceToken.replace(/</g, ''); | |
deviceToken = deviceToken.replace(/ /g, ''); | |
deviceToken = deviceToken.replace(/>/g, ''); | |
} | |
logger.debug('Принимаем переменные из запроса:', email); | |
// Создаем первоначальный login на основе email'а | |
var login = email.substr(0, email.indexOf('@')); | |
logger.debug('Первоначальный логин: %s', login); | |
// Создаем объект пользователь и пишем ему свойства | |
var newUser = new db.user({ | |
username: login.toLowerCase(), | |
password: password, | |
email: email.toLowerCase() | |
}); | |
// Если был передан deviceToken запишем его | |
if (deviceToken) { | |
newUser.deviceToken = deviceToken; | |
} | |
logger.debug('Объявили объект пользователя: %s', JSON.stringify(newUser)); | |
// Создаем пользователя в базе | |
newUser.save(function (error, user) { | |
if (!error && user) { | |
logger.debug('Пользователь создан успешно: %s', JSON.stringify(user)); | |
// Создаем ему бюджет по умолчанию | |
var newBudget = new db.budget({ | |
ownerId: user._id, | |
accounts: [ | |
{ | |
name: 'Кошелёк', | |
balance: 0 | |
} | |
], | |
tags: [ | |
{name: 'Без категории'}, | |
{name: 'Продукты'}, | |
{name: 'Транспорт'}, | |
{name: 'Сотовые и интернет'}, | |
{name: 'Жилье'}, | |
{name: 'Хозрасходы'}, | |
{name: 'Медицина'}, | |
{name: 'Развлечения'}, | |
{name: 'Подарки'} | |
] | |
}); | |
//Сохраняем бюджет и пишем ID текущему пользователю | |
newBudget.save(function (error, budget) { | |
if (!error && budget) { | |
var resObject = {"token": jwt.sign(user, config['jwt']), userId: user._id, email: user.email}; | |
logger.info('Регистрация успешна: %s', JSON.stringify(resObject)); | |
res.send(resObject); | |
//Отправляем ему пароль на почту и отдает ответ | |
utils.emailRegister(user.email, user.password); | |
if (utils.mailChimpAction('lists', 'subscribe', { "id": "2b846c34be", "email": { "email" : user.email}, "double_optin": false, "send_welcome": true})) { | |
utils.mailChimpAction( | |
'lists', 'update-member', | |
{ | |
"id" : "2b846c34be", | |
"email" : { "email" : "mborodov3@gmail.com"}, | |
"merge_vars" : { | |
"groupings": | |
[{ | |
"name" : "Платный аккаунт", | |
"groups" : ["Куплен"] | |
}] | |
}, | |
"replace_interests": true | |
} | |
) | |
} | |
} | |
logger.warn('Метод регистрации - конец'); | |
}); | |
} else { | |
// Проверка на дупликат пользователя | |
if (error.code == 11000) { | |
logger.warn('Пользователь с таким email уже зареган'); | |
res.send(utils.error(409)); | |
} else { | |
logger.error('Внутренняя ошибка сервера'); | |
res.send(error); | |
} | |
logger.warn('Метод регистрации - конец'); | |
} | |
}); | |
}, |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment