import axios from 'axios'; import { cloudServerUrl, replaceMailVaribles } from '../../../../Utils.js'; export default async function resendMail(request, response) { try { const reqToken = request.headers['x-api-token']; const docId = request.body.document_id; const userMail = request.body.email; const email_subject = request.body.email_subject; const email_body = request.body.email_body; const baseUrl = new URL(process.env.SERVER_URL); if (!reqToken) { return response.status(400).json({ error: 'Please Provide API Token' }); } const tokenQuery = new Parse.Query('appToken'); tokenQuery.equalTo('token', reqToken); tokenQuery.include('userId'); const token = await tokenQuery.first({ useMasterKey: true }); if (token !== undefined) { // Valid Token then proceed request const parseUser = JSON.parse(JSON.stringify(token)); const userPtr = { __type: 'Pointer', className: '_User', objectId: parseUser.userId.objectId, }; const docQuery = new Parse.Query('contracts_Document'); docQuery.equalTo('objectId', docId); docQuery.equalTo('CreatedBy', userPtr); docQuery.include('Signers,ExtUserPtr'); docQuery.notEqualTo('IsCompleted', true); docQuery.notEqualTo('IsDeclined', true); docQuery.notEqualTo('IsArchive', true); docQuery.greaterThanOrEqualTo('ExpiryDate', new Date()); docQuery.exists('SignedUrl'); docQuery.include('ExtUserPtr.TenantId'); const resDoc = await docQuery.first({ useMasterKey: true }); // console.log("resDoc ",resDoc) if (resDoc) { const _resDoc = resDoc.toJSON(); const contact = _resDoc.Signers.find(x => x.Email === userMail); const activeMailAdapter = _resDoc?.ExtUserPtr?.active_mail_adapter || ''; if (contact) { try { const imgPng = 'https://qikinnovation.ams3.digitaloceanspaces.com/logo.png'; let url = `${cloudServerUrl}/functions/sendmailv3/`; const headers = { 'Content-Type': 'application/json', 'X-Parse-Application-Id': process.env.APP_ID, 'X-Parse-Master-Key': process.env.MASTER_KEY, }; const objectId = contact.objectId; const hostUrl = baseUrl.origin; const title = _resDoc.Name; const receiverMail = contact.Email; //encode this url value `${response.id}/${receiverMail}/${objectId}` to base64 using `btoa` function const encodeBase64 = btoa(`${_resDoc.objectId}/${receiverMail}/${objectId}`); let signPdf = `${hostUrl}/login/${encodeBase64}`; const openSignUrl = 'https://www.opensignlabs.com/contact-us'; const orgName = _resDoc.ExtUserPtr.Company ? _resDoc.ExtUserPtr.Company : ''; const newDate = new Date(_resDoc.ExpiryDate.iso); newDate.setDate(newDate.getDate() + 15); const sender = _resDoc.ExtUserPtr.Email; const localExpireDate = newDate.toLocaleDateString('en-US', { day: 'numeric', month: 'long', year: 'numeric', }); const themeBGcolor = '#47a3ad'; const email_html = "
Digital Signature Request
This is an automated email from OpenSign™. For any queries regarding this email, please contact the sender " + sender + ' directly.If you think this email is inappropriate or spam, you may file a complaint with OpenSign™ here.