feature/IO-3096-GlobalNotifications - Checkpoint, Builders

This commit is contained in:
Dave Richer
2025-02-18 12:57:54 -05:00
parent c214ed1dfb
commit adb15a4748
7 changed files with 149 additions and 138 deletions

View File

@@ -1,6 +1,5 @@
const { getJobAssignmentType } = require("./stringHelpers");
// Helper function to populate watchers for app, fcm, and email channels
const populateWatchers = (data, result) => {
data.scenarioWatchers.forEach((recipients) => {
const { user, app, fcm, email } = recipients;
@@ -12,9 +11,9 @@ const populateWatchers = (data, result) => {
const alternateTransportChangedBuilder = (data) => {
const result = {
jobId: data.jobId,
bodyShopName: data.bodyShopName,
app: {
jobId: data.jobId,
bodyShopId: data.bodyShopId,
key: "notifications.job.alternateTransportChanged",
variables: {
alternateTransport: data.data.alt_transport,
@@ -36,9 +35,9 @@ const alternateTransportChangedBuilder = (data) => {
const billPostedHandler = (data) => {
const result = {
jobId: data.jobId,
bodyShopName: data.bodyShopName,
app: {
jobId: data.jobId,
bodyShopId: data.bodyShopId,
key: "notifications.job.billPosted",
variables: {
clmTotal: data.data.clm_total
@@ -59,9 +58,9 @@ const billPostedHandler = (data) => {
const criticalPartsStatusChangedBuilder = (data) => {
const result = {
jobId: data.jobId,
bodyShopName: data.bodyShopName,
app: {
jobId: data.jobId,
bodyShopId: data.bodyShopId,
key: "notifications.job.criticalPartsStatusChanged",
variables: {
queuedForParts: data.data.queued_for_parts,
@@ -84,9 +83,9 @@ const criticalPartsStatusChangedBuilder = (data) => {
const intakeDeliveryChecklistCompletedBuilder = (data) => {
const checklistType = data.changedFields.intakechecklist ? "intake" : "delivery";
const result = {
jobId: data.jobId,
bodyShopName: data.bodyShopName,
app: {
jobId: data.jobId,
bodyShopId: data.bodyShopId,
key: "notifications.job.checklistCompleted",
variables: {
checklistType,
@@ -108,14 +107,12 @@ const intakeDeliveryChecklistCompletedBuilder = (data) => {
const jobAssignedToMeBuilder = (data) => {
const result = {
jobId: data.jobId,
bodyShopName: data.bodyShopName,
app: {
jobId: data.jobId,
bodyShopId: data.bodyShopId,
key: "notifications.job.assigned",
variables: {
type: data.scenarioFields?.[0],
jobId: data.jobId,
bodyShopName: data.bodyShopName
type: data.scenarioFields?.[0]
},
recipients: []
},
@@ -133,14 +130,11 @@ const jobAssignedToMeBuilder = (data) => {
const jobsAddedToProductionBuilder = (data) => {
const result = {
jobId: data.jobId,
bodyShopName: data.bodyShopName,
app: {
jobId: data.jobId,
bodyShopId: data.bodyShopId,
key: "notifications.job.addedToProduction",
variables: {
inProduction: data.data.inproduction,
oldInProduction: data.changedFields.inproduction?.old
},
variables: {},
recipients: []
},
email: {
@@ -158,9 +152,9 @@ const jobsAddedToProductionBuilder = (data) => {
// Verified
const jobStatusChangeBuilder = (data) => {
const result = {
jobId: data.jobId,
bodyShopName: data.bodyShopName,
app: {
jobId: data.jobId,
bodyShopId: data.bodyShopId,
key: "notifications.job.statusChanged",
variables: {
status: data.data.status,
@@ -182,9 +176,9 @@ const jobStatusChangeBuilder = (data) => {
const newMediaAddedReassignedBuilder = (data) => {
const result = {
jobId: data.jobId,
bodyShopName: data.bodyShopName,
app: {
jobId: data.jobId,
bodyShopId: data.bodyShopId,
key: "notifications.job.newMediaAdded",
variables: {},
recipients: []
@@ -204,9 +198,9 @@ const newMediaAddedReassignedBuilder = (data) => {
// Verified
const newNoteAddedBuilder = (data) => {
const result = {
jobId: data.jobId,
bodyShopName: data.bodyShopName,
app: {
jobId: data.jobId,
bodyShopId: data.bodyShopId,
key: "notifications.job.newNoteAdded",
variables: {
text: data.data.text
@@ -227,9 +221,9 @@ const newNoteAddedBuilder = (data) => {
const newTimeTicketPostedBuilder = (data) => {
const result = {
jobId: data.jobId,
bodyShopName: data.bodyShopName,
app: {
jobId: data.jobId,
bodyShopId: data.bodyShopId,
key: "notifications.job.newTimeTicketPosted",
variables: {},
recipients: []
@@ -248,9 +242,9 @@ const newTimeTicketPostedBuilder = (data) => {
const partMarkedBackOrderedBuilder = (data) => {
const result = {
jobId: data.jobId,
bodyShopName: data.bodyShopName,
app: {
jobId: data.jobId,
bodyShopId: data.bodyShopId,
key: "notifications.job.partBackOrdered",
variables: {
queuedForParts: data.data.queued_for_parts,
@@ -272,9 +266,9 @@ const partMarkedBackOrderedBuilder = (data) => {
const paymentCollectedCompletedBuilder = (data) => {
const result = {
jobId: data.jobId,
bodyShopName: data.bodyShopName,
app: {
jobId: data.jobId,
bodyShopId: data.bodyShopId,
key: "notifications.job.paymentCollected",
variables: {
clmTotal: data.data.clm_total
@@ -295,9 +289,9 @@ const paymentCollectedCompletedBuilder = (data) => {
const scheduledDatesChangedBuilder = (data) => {
const result = {
jobId: data.jobId,
bodyShopName: data.bodyShopName,
app: {
jobId: data.jobId,
bodyShopId: data.bodyShopId,
key: "notifications.job.scheduledDatesChanged",
variables: {
scheduledIn: data.data.scheduled_in,
@@ -323,9 +317,9 @@ const scheduledDatesChangedBuilder = (data) => {
const supplementImportedBuilder = (data) => {
const result = {
jobId: data.jobId,
bodyShopName: data.bodyShopName,
app: {
jobId: data.jobId,
bodyShopId: data.bodyShopId,
key: "notifications.job.supplementImported",
variables: {
suppAmt: data.data.cieca_ttl?.data?.supp_amt
@@ -346,11 +340,14 @@ const supplementImportedBuilder = (data) => {
const tasksUpdatedCreatedBuilder = (data) => {
const result = {
jobId: data.jobId,
bodyShopName: data.bodyShopName,
app: {
jobId: data.jobId,
bodyShopId: data.bodyShopId,
key: "notifications.job.tasksUpdated",
variables: {},
variables: {
type: data.isNew ? "created" : "updated",
roNumber: data.jobRoNumber
},
recipients: []
},
email: {