import { appName, smtpenable, updateMailCount } from '../../Utils.js'; async function getDocument(docId) { try { const query = new Parse.Query('contracts_Document'); query.equalTo('objectId', docId); query.include('ExtUserPtr'); query.include('CreatedBy'); query.include('Signers'); query.include('AuditTrail.UserPtr'); query.include('Placeholders'); query.notEqualTo('IsArchive', true); const res = await query.first({ useMasterKey: true }); const _res = res.toJSON(); return _res?.ExtUserPtr?.objectId; } catch (err) { console.log('err ', err); } } async function sendMailOTPv1(request) { try { //--for elearning app side let code = Math.floor(1000 + Math.random() * 9000); let email = request.params.email; var TenantId = request.params.TenantId ? request.params.TenantId : undefined; if (email) { const recipient = request.params.email; const mailsender = smtpenable ? process.env.SMTP_USER_EMAIL : process.env.MAILGUN_SENDER; try { await Parse.Cloud.sendEmail({ from: appName + ' <' + mailsender + '>', recipient: recipient, subject: `Your ${appName} OTP`, text: 'This email is a test.', html: `

OTP Verification

Your OTP for ${appName} verification is:

` + code + '

', }); console.log('OTP sent', code); if (request.params?.docId) { const extUserId = await getDocument(request.params?.docId); if (extUserId) { updateMailCount(extUserId); } } } catch (err) { console.log('error in send OTP mail', err); } const tempOtp = new Parse.Query('defaultdata_Otp'); tempOtp.equalTo('Email', email); const resultOTP = await tempOtp.first({ useMasterKey: true }); // console.log('resultOTP', resultOTP); if (resultOTP !== undefined) { const updateOtpQuery = new Parse.Query('defaultdata_Otp'); const updateOtp = await updateOtpQuery.get(resultOTP.id, { useMasterKey: true, }); updateOtp.set('OTP', code); updateOtp.save(null, { useMasterKey: true }); // console.log("update otp Res in tempSendOtp ", updateRes); } else { const otpClass = Parse.Object.extend('defaultdata_Otp'); const newOtpQuery = new otpClass(); newOtpQuery.set('OTP', code); newOtpQuery.set('Email', email); newOtpQuery.set('TenantId', TenantId); await newOtpQuery.save(null, { useMasterKey: true }); // console.log("new otp Res in tempSendOtp ", newRes); } return 'Otp send'; } else { return 'Please Enter valid email'; } } catch (err) { console.log('err in sendMailOTPv1'); console.log(err); return err; } } export default sendMailOTPv1;