, , , . . : email.the .... user = , modelN =
modelN.sendVerificationEmail = function (data, callback) {
var user = loopback.models.modelN;
if (!data.email) {
return callback(commonUtils.buildError(
'Recipient email is required.', 400, 'EMAIL_REQUIRED'
));
}
if (!emailValidator.validate(data.email)) {
return callback(commonUtils.buildError(
'Must provide a valid email.', 400, 'INVALID_EMAIL'
));
}
var findOneuserPromise
= modelN.findOne({ 'where': { 'email': data.email }});
findOneBusinessEmployeePromise.then(function (user) {
if (!user) {
return callback();
}
var sendVerificationEmailPromise
= anothermodelname.sendVerificationEmail(user.id);
sendVerificationEmailPromise.then(function () {
callback();
});
sendVerificationEmailPromise.then(null, function (error) {
callback(error);
});
});
findOneuserPromise.then(null, function (error) {
callback(error);
});
};
, ,....
anothermodelname.sendVerificationEmail = function (userid) {
var modelN = loopback.models.modelN;
var Email = loopback.models.Email;
var deferred = Q.defer();
var findByIduserPromise = modelN.findById(userId);
findByIduserPromise.then(function (user) {
if (!user) {
return deferred.reject(commonUtils.buildError(
'Unknown "modelN" id "' + userId + '".',
404, 'MODEL_NOT_FOUND'
));
}
if (!user.verificationToken) {
return deferred.resolve(true);
}
modelN.generateVerificationToken(user,
function (verificationTokenError, verificationToken) {
if (verificationTokenError) {
return deferred.reject(verificationTokenError);
}
user.verificationToken = verificationToken;
var saveuserPromise = user.save();
saveuserPromise.then(function (updateduser) {
var link = emailConf.clientBaseUrl +
emailConf.verifyEmailRedirect + '?uid=' +
updateduser.id + '&token=' +
updateduser.verificationToken;
console.log("check+link:",link);
emailOptions.to = updateduser.email;
emailOptions.template = { 'name': 'verify' };
emailOptions.global_merge_vars = [];
emailOptions.global_merge_vars.push({
'name': 'USER_NAME',
'content': updateduser.name
|| updateduser.username || updateduser.email
});
emailOptions.global_merge_vars.push({
'name': 'LINK',
'content': link
});
Email.send(emailOptions, function () {});
deferred.resolve(true);
});
saveuserPromise.then(null, function (error) {
deferred.reject(error);
});
});
});
findByIduserPromise.then(null, function (error) {
deferred.reject(error);
});
return deferred.promise;
};