Merged in feature/IO-2597-task-reminders (pull request #1770)

IO-2957 Resolve task reminders not sending with incorrect references.
This commit is contained in:
Patrick Fic
2024-09-24 01:24:18 +00:00
2 changed files with 30 additions and 22 deletions

View File

@@ -95,11 +95,11 @@ const formatPriority = (priority) => {
* @returns {{header, body: string, subHeader: string}} * @returns {{header, body: string, subHeader: string}}
*/ */
const getEndpoints = () => const getEndpoints = (bodyshop) =>
InstanceManager({ InstanceManager({
imex: process.env?.NODE_ENV === "test" ? "https://test.imex.online" : "https://imex.online", imex: process.env?.NODE_ENV === "test" ? "https://test.imex.online" : "https://imex.online",
rome: rome:
bodyshop.convenient_company === "promanager" bodyshop?.convenient_company === "promanager"
? process.env?.NODE_ENV === "test" ? process.env?.NODE_ENV === "test"
? "https//test.promanager.web-est.com" ? "https//test.promanager.web-est.com"
: "https://promanager.web-est.com" : "https://promanager.web-est.com"
@@ -109,7 +109,7 @@ const getEndpoints = () =>
}); });
const generateTemplateArgs = (title, priority, description, dueDate, bodyshop, job, taskId) => { const generateTemplateArgs = (title, priority, description, dueDate, bodyshop, job, taskId) => {
const endPoints = getEndpoints(); const endPoints = getEndpoints(bodyshop);
return { return {
header: title, header: title,
subHeader: `Body Shop: ${bodyshop.shopname} | Priority: ${formatPriority(priority)} ${formatDate(dueDate)}`, subHeader: `Body Shop: ${bodyshop.shopname} | Priority: ${formatPriority(priority)} ${formatDate(dueDate)}`,
@@ -247,7 +247,7 @@ const tasksRemindEmail = async (req, res) => {
const fromEmails = InstanceManager({ const fromEmails = InstanceManager({
imex: "ImEX Online <noreply@imex.online>", imex: "ImEX Online <noreply@imex.online>",
rome: rome:
onlyTask.bodyshop.convenient_company === "promanager" tasksRequest?.tasks[0].bodyshop.convenient_company === "promanager"
? "ProManager <noreply@promanager.web-est.com>" ? "ProManager <noreply@promanager.web-est.com>"
: "Rome Online <noreply@romeonline.io>" : "Rome Online <noreply@romeonline.io>"
}); });
@@ -283,7 +283,7 @@ const tasksRemindEmail = async (req, res) => {
const endPoints = InstanceManager({ const endPoints = InstanceManager({
imex: process.env?.NODE_ENV === "test" ? "https://test.imex.online" : "https://imex.online", imex: process.env?.NODE_ENV === "test" ? "https://test.imex.online" : "https://imex.online",
rome: rome:
allTasks[0].bodyshop.convenient_company === "promanager" tasksRequest?.tasks[0].bodyshop.convenient_company === "promanager"
? process.env?.NODE_ENV === "test" ? process.env?.NODE_ENV === "test"
? "https//test.promanager.web-est.com" ? "https//test.promanager.web-est.com"
: "https://promanager.web-est.com" : "https://promanager.web-est.com"
@@ -320,7 +320,7 @@ const tasksRemindEmail = async (req, res) => {
tasksEmailQueue.push(taskId); tasksEmailQueue.push(taskId);
} }
}, },
allTasks[0].bodyshop.convenient_company tasksRequest?.tasks[0].bodyshop.convenient_company
); );
} }
}); });

View File

@@ -207,22 +207,30 @@ exports.postback = async (req, res) => {
if (values.origin === "OneLink" && parsedComment.userEmail) { if (values.origin === "OneLink" && parsedComment.userEmail) {
//Send an email, it was a text to pay link. //Send an email, it was a text to pay link.
const endPoints = getEndpoints(); try {
sendTaskEmail({ const endPoints = getEndpoints();
to: parsedComment.userEmail, sendTaskEmail({
subject: `New Payment(s) Received - RO ${jobs.jobs.map((j) => j.ro_number).join(", ")}`, to: parsedComment.userEmail,
type: "html", subject: `New Payment(s) Received - RO ${jobs.jobs.map((j) => j.ro_number).join(", ")}`,
html: generateEmailTemplate({ type: "html",
header: "New Payment(s) Received", html: generateEmailTemplate({
subHeader: "", header: "New Payment(s) Received",
body: jobs.jobs subHeader: "",
.map( body: jobs.jobs
(job) => .map(
`Reference: <a href="${endPoints}/manage/jobs/${job.id}">${job.ro_number || "N/A"}</a> | ${job.ownr_co_nm ? job.ownr_co_nm : `${job.ownr_fn || ""} ${job.ownr_ln || ""}`.trim()} | ${`${job.v_model_yr || ""} ${job.v_make_desc || ""} ${job.v_model_desc || ""}`.trim()} | $${partialPayments.find((p) => p.jobid === job.id).amount}` (job) =>
) `Reference: <a href="${endPoints}/manage/jobs/${job.id}">${job.ro_number || "N/A"}</a> | ${job.ownr_co_nm ? job.ownr_co_nm : `${job.ownr_fn || ""} ${job.ownr_ln || ""}`.trim()} | ${`${job.v_model_yr || ""} ${job.v_make_desc || ""} ${job.v_model_desc || ""}`.trim()} | $${partialPayments.find((p) => p.jobid === job.id).amount}`
.join("<br/>") )
}) .join("<br/>")
}); })
});
} catch (error) {
logger.log("intellipay-postback-app-email-error", "DEBUG", req.user?.email, JSON.stringify(jobs), {
iprequest: values,
paymentResult,
error: error.message
});
}
} }
res.sendStatus(200); res.sendStatus(200);
} else if (values.invoice) { } else if (values.invoice) {