diff --git a/services/integration/reports.js b/services/integration/reports.js index c605c5c..5add388 100644 --- a/services/integration/reports.js +++ b/services/integration/reports.js @@ -222,19 +222,29 @@ const getAllIncidents = (dateRange, memberIds) => { unlockedIncidents.forEach((unlockedIncident) => { const incidentTypeNumber = unlockedIncident.reservationId ? incidentType.UNLOCKED_INCIDENT_RELATED_WITH_RESERVATION : incidentType.UNLOCKED_INCIDENT_STANDALONE; + + const resourceObject = resourcesMap[unlockedIncident.resourceId]; + const officeObject = resourceObject ? officesMap[resourceObject.officeId] : null; + + const memberName = membersMap[unlockedIncident.memberId] ? membersMap[unlockedIncident.memberId].name : 'Unknown member'; + const resourceName = resourceObject ? resourceObject.resourceName : 'Unknown room'; + const officeId = resourceObject ? resourceObject.officeId : ''; + const officeName = officeObject ? officeObject.officeName : 'Unknown office'; + const officeSlug = officeObject ? officeObject.officeSlug : '-'; + allIncidents.push({ incidentId: unlockedIncident.id, memberId: unlockedIncident.memberId, - memberName: membersMap[unlockedIncident.memberId].name, - resourceName: resourcesMap[unlockedIncident.resourceId].resourceName, - officeId: resourcesMap[unlockedIncident.resourceId].officeId, - officeName: officesMap[resourcesMap[unlockedIncident.resourceId].officeId].officeName, - officeSlug: officesMap[resourcesMap[unlockedIncident.resourceId].officeId].officeSlug, - bookingStart: formatTime(unlockedIncident.bookingStart), - bookingEnd: formatTime(unlockedIncident.bookingEnd), + memberName, + resourceName, + officeId, + officeName, + officeSlug, + bookingStart: formatTime(unlockedIncident.bookingStart) || '-', + bookingEnd: formatTime(unlockedIncident.bookingEnd) || '-', bookingStartRaw: unlockedIncident.bookingStart, bookingEndRaw: unlockedIncident.bookingEnd, - unlockTimestamp: formatTime(unlockedIncident.unlockTimestamp), + unlockTimestamp: formatTime(unlockedIncident.unlockTimestamp) || '-', unlockTimestampRaw: unlockedIncident.unlockTimestamp, incidentType: incidentTypeNumber, incidentLevel: unlockedIncident.incidentLevel, @@ -253,20 +263,30 @@ const getAllIncidents = (dateRange, memberIds) => { }else{ incidentTypeNumber = incidentType.UNSCHEDULED_INCIDENT_STANDALONE; } + + const resourceObject = resourcesMap[unscheduledIncident.resourceId]; + const officeObject = resourceObject ? officesMap[resourceObject.officeId] : null; + + const memberName = membersMap[unscheduledIncident.memberId] ? membersMap[unscheduledIncident.memberId].name : 'Unknown member'; + const resourceName = resourceObject ? resourceObject.resourceName : 'Unknown room'; + const officeId = resourceObject ? resourceObject.officeId : ''; + const officeName = officeObject ? officeObject.officeName : 'Unknown office'; + const officeSlug = officeObject ? officeObject.officeSlug : '-'; + allIncidents.push({ incidentId: unscheduledIncident.id, memberId: unscheduledIncident.memberId, - memberName: membersMap[unscheduledIncident.memberId].name, - resourceName: resourcesMap[unscheduledIncident.resourceId].resourceName, - officeId: resourcesMap[unscheduledIncident.resourceId].officeId, - officeName: officesMap[resourcesMap[unscheduledIncident.resourceId].officeId].officeName, - officeSlug: officesMap[resourcesMap[unscheduledIncident.resourceId].officeId].officeSlug, - bookingStart: formatTime(unscheduledIncident.bookingStart), - bookingEnd: formatTime(unscheduledIncident.bookingEnd), + memberName, + resourceName, + officeId, + officeName, + officeSlug, + bookingStart: formatTime(unscheduledIncident.bookingStart) || '-', + bookingEnd: formatTime(unscheduledIncident.bookingEnd) || '-', bookingStartRaw: unscheduledIncident.bookingStart, bookingEndRaw: unscheduledIncident.bookingEnd, - unlockTimestamp: formatTime(unscheduledIncident.unlockTimestamp), - lockTimestamp: formatTime(unscheduledIncident.lockTimestamp), + unlockTimestamp: formatTime(unscheduledIncident.unlockTimestamp) || '-', + lockTimestamp: formatTime(unscheduledIncident.lockTimestamp) || '-', unlockTimestampRaw: unscheduledIncident.unlockTimestamp, lockTimestampRaw: unscheduledIncident.lockTimestamp, incidentType: incidentTypeNumber, @@ -291,14 +311,14 @@ const getAllIncidents = (dateRange, memberIds) => { deleted, createdAt, } = bookingChangeIncident; - const memberName = membersMap[memberId].name; + const memberName = membersMap[memberId] ? membersMap[memberId].name : 'Unknown member'; const oldResource = resourcesMap[oldResourceId]; const newResource = newResourceId ? resourcesMap[newResourceId] : null; - const oldResourceName = oldResource.resourceName; + const oldResourceName = oldResource ? oldResource.resourceName : 'Unknown room'; const newResourceName = newResource ? newResource.resourceName : null; - const officeId = oldResource.officeId; - const officeName = officesMap[officeId].officeName; - const officeSlug = officesMap[officeId].officeSlug; + const officeId = oldResource ? oldResource.officeId : ''; + const officeName = officesMap[officeId] ? officesMap[officeId].officeName : 'Unknown office'; + const officeSlug = officesMap[officeId] ? officesMap[officeId].officeSlug : '-'; allIncidents.push({ incidentId: id, memberId, @@ -308,10 +328,10 @@ const getAllIncidents = (dateRange, memberIds) => { officeId, officeName, officeSlug, - oldBookingStart: formatTime(oldBookingStart), - oldBookingEnd: formatTime(oldBookingEnd), - newBookingStart: formatTime(newBookingStart), - newBookingEnd: formatTime(newBookingEnd), + oldBookingStart: formatTime(oldBookingStart) || '-', + oldBookingEnd: formatTime(oldBookingEnd) || '-', + newBookingStart: formatTime(newBookingStart) || '-', + newBookingEnd: formatTime(newBookingEnd) || '-', oldBookingStartRaw: oldBookingStart, oldBookingEndRaw: oldBookingEnd, newBookingStartRaw: newBookingStart, @@ -319,7 +339,7 @@ const getAllIncidents = (dateRange, memberIds) => { incidentType, totalChargeFee: chargeFee, deleted, - incidentTimestamp: formatTime(createdAt), + incidentTimestamp: formatTime(createdAt) || '-', incidentTimestampRaw: createdAt, }); });