Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var utility = require('./utility');
- var mongodbhelper = require('./mongodbhelper');
- var ObjectID = require('mongodb').ObjectID;
- var encrypt = require('./passwordencrypt');
- var license = require('./../license/licenseManagement');
- var AppConstants = require('./../utility/AppConstants');
- var invitationMail = require('../utility/userInvitationMail');
- var logger = require('./logger');
- var mailutility = require('../utility/mailutility');
- var encryptDecrypt = require('../utility/encryptDecrypt');
- var QRCode = require('qrcode');
- module.exports = {
- addUser: function (req, res) {
- var customerId = req.session.customerid;
- var data = req.body.userData;
- if (!customerId) {
- utility.responseSuccessFalse(res, 'customer id invalid');
- return;
- }
- if (!data || data.length == 0) {
- utility.responseSuccessFalse(res, 'No data to save');
- return;
- }
- var subAdmin = data[0];
- if (utility.validate.email(subAdmin['email']) && subAdmin['password'] && subAdmin['fname']) {
- var query = { email: subAdmin['email'], customerId: customerId };
- mongodbhelper.find(mongodbhelper.col_userdetail, query)
- .then((data) => {
- if (data.length == 0) {
- if (subAdmin['id']) {
- delete subAdmin['id'];
- }
- if (subAdmin['customerID']) {
- delete subAdmin['customerID'];
- }
- subAdmin['disabled'] = false;
- subAdmin['userType'] = 'admin';
- subAdmin['customerId'] = customerId;
- encrypt.encrypt(subAdmin.password)
- .then((hash) => {
- var oldPassword = subAdmin['password'];
- subAdmin['password'] = hash;
- mongodbhelper.insertData(mongodbhelper.col_userdetail, subAdmin)
- .then((response) => {
- try {
- var loginUI = ` <tr>
- <td style="font-family: arial, Verdana, sans-serif;font-size: 14px;">Login URL</td>
- <td style="font-family: arial, Verdana, sans-serif;font-size: 14px;">: <a href="%DOMAINNAME%" style="color:#33b5e5;"><b>%DOMAINNAME%</b></a></td>
- </tr> `;
- var isEmailsent = utility.sendUserInvitationMail(subAdmin.email, oldPassword,
- subAdmin.fname, AppConstants.adminUserInviteMessg, AppConstants.adminUserInviteSub, loginUI);
- } catch (error) {
- }
- utility.responseSuccess(res, response);
- })
- .catch((err) => {
- utility.responseSuccessFalse(res, err);
- })
- })
- .catch((err) => {
- utility.responseSuccessFalse(res, 'something went wrong');
- });
- } else {
- utility.responseSuccessFalse(res, 'email already exist');
- }
- })
- .catch((err) => {
- console.log(err)
- utility.responseSuccessFalse(res, err);
- })
- } else {
- utility.responseSuccessFalse(res, 'user not found');
- }
- // userdetails = {
- // contactNumber: req.body.contactNumber,
- // email: req.body.email,
- // fname: req.body.fname,
- // lname: req.body.lname,
- // displayName: req.body.fname + ' ' + (req.body.lname.length > 0 ? req.body.lname : ''),
- // profile_picture: "",
- // username: req.body.fname + ' ' + req.body.lname,
- // password: req.body.password,
- // userType: "admin",
- // disabled: false,
- // id: user.uid
- // }
- // var loginUI = ` <tr>
- // <td style="font-family: arial, Verdana, sans-serif;font-size: 14px;">Login URL</td>
- // <td style="font-family: arial, Verdana, sans-serif;font-size: 14px;">: <a href="%DOMAINNAME%" style="color:#33b5e5;"><b>%DOMAINNAME%</b></a></td>
- // </tr> `;
- // var isEmailsent = utility.sendUserInvitationMail(userdetails.email, userdetails.password,
- // userdetails.displayName, appconstants.adminUserInviteMessg, appconstants.adminUserInviteSub, loginUI);
- // utility.responseSuccess(res, {});
- },
- inviteUsers: function (req, res) {
- let data = req.body;
- let userData = [];
- let result = {}, invitedCount, notInvitedCount;
- if (data && data.length > 0) {
- for (let i = 0; i < data.length; i++) {
- userData.push({ _id: ObjectID(data[i]), invited: false })
- }
- let tableName = mongodbhelper.col_contactdetail;
- let query = { $or: userData }
- mongodbhelper.find(tableName, query)
- .then(contactUserData => {
- if (contactUserData && contactUserData.length > 0) {
- invitedCount = contactUserData.length;
- notInvitedCount = data.length - invitedCount;
- result = {
- invited: {
- count: invitedCount,
- message: " contact(s) invited"
- },
- notInvitedCount: {
- count: notInvitedCount,
- message: " contact(s) already invited"
- },
- totalCount: data.length
- }
- mongodbhelper.findOne(mongodbhelper.col_customerdetails, { customerId: req.session.data.customerId })
- .then(adminData => {
- for (let i = 0; i < contactUserData.length; i++) {
- let query2 = { _id: ObjectID(contactUserData[i]._id) }
- let pass = utility.getGUID().split('-')[0]
- let info = encryptDecrypt.encrypt(contactUserData[i].EmailAddress, pass);
- let updateData = { $set: { invited: true, password: info['encryptPassword'] } }
- mongodbhelper.updateData(tableName, query2, updateData)
- .then(updateData => {
- let qrcodeVal = info['encryptEmail'] + ' \n ' + info['encryptPassword'];
- QRCode.toDataURL(qrcodeVal, function (err, url) {
- sendUserInvitationMailForContacts(url, adminData.username, adminData.companyName, contactUserData[i].EmailAddress, pass,
- contactUserData[i].FirstName, AppConstants.contactUserInviteMessg, AppConstants.contactUserInviteMessg2, AppConstants.contactUserInviteSub, "", req.session.data.customerId);
- })
- })
- .catch(err => console.log(err))
- }
- })
- .catch(err => console.log(err))
- utility.responseSuccess(res, result)
- } else {
- utility.responseSuccessFalse(res, "No contacts found to invite")
- }
- })
- .catch(err => console.log(err))
- } else {
- let message = "nothing to send"
- utility.responseSuccessFalse(res, message)
- }
- }
- }
- function sendUserInvitationMailForContacts(url, adminFirstName, companyName, email, pswd, displayname, messg, messg2, sub, loginUrl, custId) {
- messg = messg.replace(/%admin_firstname%/g, adminFirstName);
- messg = messg.replace(/%company_name%/g, companyName);
- sub = sub.replace(/%company_name%/g, companyName);
- var generateQRCode = AppConstants.generateQRCodeUrl + '?username=' + email + '&password=' + pswd + '&customerid=' + custId;
- var html = invitationMail.html_contact;
- html = html.replace(/%LOGINUI%/g, loginUrl).replace(/%DOMAINNAME%/g, AppConstants.serverUrl + AppConstants.loginPage)
- .replace(/%%CustomerName%%/g, displayname)
- .replace(/%PASSWORD%/g, pswd)
- .replace(/%EMAIL%/g, email)
- .replace(/%InviteMessage%/g, messg)
- .replace(/%InviteMessage2%/g, messg2)
- .replace(/%APP_STORE%/g, AppConstants.contactUserInvite_AppStoreLink)
- .replace(/%PLAY_STORE%/g, AppConstants.contactUserInvite_PlayStoreLink)
- .replace(/%SLOGAN%/g, AppConstants.contactUserInviteSlogan)
- // .replace(/%OR_CODE%/g, url)
- .replace(/%QR_CODE_URL%/g, generateQRCode);
- var template = html;
- mailutility.sendMail({
- from: AppConstants.emailMailAddr, // sender address
- 'h:Reply-To': AppConstants.replyMailAddr,
- to: email, // list of receivers
- subject: sub, // Subject line
- html: template,
- });
- return { success: true };
- }
Add Comment
Please, Sign In to add comment