diff --git a/apps/OpenSignServer/Utils.js b/apps/OpenSignServer/Utils.js index 98c1a4366..8fc705ceb 100644 --- a/apps/OpenSignServer/Utils.js +++ b/apps/OpenSignServer/Utils.js @@ -17,3 +17,24 @@ export const color = [ '#66ccff', '#ffffcc', ]; + +export function replaceMailVaribles(subject, body, variables) { + let replacedSubject = subject; + let replacedBody = body; + + for (const variable in variables) { + const regex = new RegExp(`{{${variable}}}`, 'g'); + if (subject) { + replacedSubject = replacedSubject.replace(regex, variables[variable]); + } + if (body) { + replacedBody = replacedBody.replace(regex, variables[variable]); + } + } + + const result = { + subject: replacedSubject, + body: replacedBody, + }; + return result; +} diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/CreateDocumentWithTemplate.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/CreateDocumentWithTemplate.js index 8d61d3327..3764bb74b 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/CreateDocumentWithTemplate.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/CreateDocumentWithTemplate.js @@ -1,14 +1,59 @@ import axios from 'axios'; -import { customAPIurl } from '../../../../Utils.js'; +import { customAPIurl, replaceMailVaribles } from '../../../../Utils.js'; +// `sendDoctoWebhook` is used to send res data of document on webhook +async function sendDoctoWebhook(doc, WebhookUrl, userId) { + if (WebhookUrl) { + const params = { + event: 'created', + ...doc, + }; + await axios + .post(WebhookUrl, params, { + headers: { 'Content-Type': 'application/json' }, + }) + .then(res => { + try { + // console.log('res ', res); + const webhook = new Parse.Object('contracts_Webhook'); + webhook.set('Log', res?.status); + webhook.set('UserId', { + __type: 'Pointer', + className: '_User', + objectId: userId, + }); + webhook.save(null, { useMasterKey: true }); + } catch (err) { + console.log('err save in contracts_Webhook', err); + } + }) + .catch(err => { + console.log('Err send data to webhook', err); + try { + const webhook = new Parse.Object('contracts_Webhook'); + webhook.set('Log', err?.status); + webhook.set('UserId', { + __type: 'Pointer', + className: '_User', + objectId: userId, + }); + webhook.save(null, { useMasterKey: true }); + } catch (err) { + console.log('err save in contracts_Webhook', err); + } + }); + // console.log('res ', res.data); + } +} export default async function createDocumentWithTemplate(request, response) { const signers = request.body.signers; const folderId = request.body.folderId; const templateId = request.params.template_id; const protocol = customAPIurl(); const baseUrl = new URL(process.env.SERVER_URL); - const send_email = request.body.send_email || true; - + const send_email = request.body.send_email; + const email_subject = request.body.email_subject; + const email_body = request.body.email_body; try { const reqToken = request.headers['x-api-token']; if (!reqToken) { @@ -142,34 +187,32 @@ export default async function createDocumentWithTemplate(request, response) { const serverUrl = process.env.SERVER_URL; const newServer = serverUrl.replaceAll('/', '%2F'); const serverParams = `${newServer}%2F&${process.env.APP_ID}&contracts`; + if (send_email === false) { + console.log("don't send mail"); + } else { + for (let i = 0; i < contact.length; i++) { + try { + const imgPng = 'https://qikinnovation.ams3.digitaloceanspaces.com/logo.png'; + let url = `${process.env.SERVER_URL}/functions/sendmailv3/`; + const headers = { + 'Content-Type': 'application/json', + 'X-Parse-Application-Id': process.env.APP_ID, + 'X-Parse-Master-Key': process.env.MASTER_KEY, + }; - for (let i = 0; i < contact.length; i++) { - try { - const imgPng = 'https://qikinnovation.ams3.digitaloceanspaces.com/logo.png'; - let url = `${process.env.SERVER_URL}/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[i].contactPtr.objectId; + const objectId = contact[i].contactPtr.objectId; - const hostUrl = baseUrl.origin + '/loadmf/signmicroapp'; - let signPdf = `${hostUrl}/login/${res.id}/${contact[i].email}/${objectId}/${serverParams}`; - const openSignUrl = 'https://www.opensignlabs.com/contact-us'; - const orgName = template.ExtUserPtr.Company ? template.ExtUserPtr.Company : ''; - const themeBGcolor = '#47a3ad'; - let params = { - recipient: contact[i].email, - subject: `${template.ExtUserPtr.Name} has requested you to sign ${template.ExtUserPtr.Name}`, - from: sender, - html: - "
This is an automated email from OpenSign™. For any queries regarding this email, please contact the sender " + + ">
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.