@plusscommunities/pluss-maintenance-aws-forms 2.1.7-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/createJob.js +136 -0
- package/createJobType.js +64 -0
- package/db/maintenance/addMaintenanceJob.js +105 -0
- package/db/maintenance/editMaintenanceJob.js +18 -0
- package/db/maintenance/getJobEmail.js +28 -0
- package/deleteJob.js +74 -0
- package/deleteJobType.js +54 -0
- package/editJob.js +83 -0
- package/editJobStatus.js +81 -0
- package/editJobType.js +76 -0
- package/editNote.js +134 -0
- package/feature.config.js +255 -0
- package/getData.js +49 -0
- package/getJob.js +14 -0
- package/getJobType.js +47 -0
- package/getJobTypes.js +70 -0
- package/getJobs.js +63 -0
- package/integration/IntegrationStrategy.js +35 -0
- package/integration/archibus/ArchibusStrategy.js +463 -0
- package/integration/index.js +23 -0
- package/jobChanged.js +73 -0
- package/package-lock.json +7653 -0
- package/package.json +64 -0
- package/requests/assignRequest.js +106 -0
- package/requests/getAssignees.js +40 -0
- package/requests/getRequest.js +89 -0
- package/requests/getRequests.js +100 -0
- package/requests/helper/hasRequestPermission.js +25 -0
- package/requests/helper/isValidAssignee.js +23 -0
- package/scheduleJobImport.js +81 -0
- package/sendJobEmail.js +153 -0
- package/updateData.js +33 -0
- package/values.config.a.js +26 -0
- package/values.config.b.js +26 -0
- package/values.config.c.js +26 -0
- package/values.config.d.js +26 -0
- package/values.config.default.js +28 -0
- package/values.config.forms.js +28 -0
- package/values.config.js +28 -0
- package/watchJobs.js +177 -0
package/updateData.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
const { log } = require("@plusscommunities/pluss-core-aws/helper");
|
|
2
|
+
const generateJsonResponse = require("@plusscommunities/pluss-core-aws/helper/generateJsonResponse");
|
|
3
|
+
const { init } = require("@plusscommunities/pluss-core-aws/config");
|
|
4
|
+
const config = require("./config.json");
|
|
5
|
+
const assignRequest = require("./requests/assignRequest");
|
|
6
|
+
|
|
7
|
+
module.exports.updateData = async (event, context, callback) => {
|
|
8
|
+
init(config);
|
|
9
|
+
const action = event.pathParameters.action;
|
|
10
|
+
const data = JSON.parse(event.body);
|
|
11
|
+
const logId = log(action, "Input", data);
|
|
12
|
+
|
|
13
|
+
let response;
|
|
14
|
+
|
|
15
|
+
try {
|
|
16
|
+
switch (action) {
|
|
17
|
+
case "assign":
|
|
18
|
+
response = await assignRequest(event, data);
|
|
19
|
+
break;
|
|
20
|
+
default:
|
|
21
|
+
break;
|
|
22
|
+
}
|
|
23
|
+
} catch (err) {
|
|
24
|
+
log(action, "InternalError", err.toString(), logId);
|
|
25
|
+
if (!response) {
|
|
26
|
+
response = { status: 500, data: { error: "Internal Error" } };
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
log(action, "Response", response, logId);
|
|
31
|
+
|
|
32
|
+
return callback(null, generateJsonResponse(response.status, response.data));
|
|
33
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const values = {
|
|
2
|
+
entityKey: "maintenancerequestA",
|
|
3
|
+
serviceKey: "maintenanceA",
|
|
4
|
+
updateKey: "jobsA",
|
|
5
|
+
tableKeyJobTypes: "jobtypesA",
|
|
6
|
+
tableKeyMaintenance: "maintenanceA",
|
|
7
|
+
tableKeySupportTickets: "supportticketsA",
|
|
8
|
+
tableNameJobTypes: "jobTypesA",
|
|
9
|
+
tableNameMaintenance: "maintenanceA",
|
|
10
|
+
tableNameSupportTickets: "supportticketsA",
|
|
11
|
+
permissionMaintenanceTracking: "maintenanceTrackingA",
|
|
12
|
+
permissionMaintenanceAssignment: "maintenanceAssignmentA",
|
|
13
|
+
permissionMaintenanceTypes: "maintenanceTypesA",
|
|
14
|
+
routeEntityPath: "/requestsHubA/jobDetails/:id",
|
|
15
|
+
screenMaintenanceDetail: "requestDetailA",
|
|
16
|
+
notificationMaintenanceJobAssigned: "MaintenanceJobAssignedA",
|
|
17
|
+
notificationMaintenanceJobUnassigned: "MaintenanceJobUnassignedA",
|
|
18
|
+
activityDeleteMaintenanceJob: "DeleteMaintenanceJobA",
|
|
19
|
+
activityEditMaintenanceJob: "EditMaintenanceJobA",
|
|
20
|
+
activityMaintenanceJobStatusChanged: "MaintenanceJobStatusChangedA",
|
|
21
|
+
activityAddMaintenanceNote: "AddMaintenanceNoteA",
|
|
22
|
+
activityDeleteMaintenanceNote: "DeleteMaintenanceNoteA",
|
|
23
|
+
activityEditMaintenanceNote: "EditMaintenanceNoteA",
|
|
24
|
+
textJobEmailTitle: "Service Request",
|
|
25
|
+
};
|
|
26
|
+
exports.values = values;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const values = {
|
|
2
|
+
entityKey: "maintenancerequestB",
|
|
3
|
+
serviceKey: "maintenanceB",
|
|
4
|
+
updateKey: "jobsB",
|
|
5
|
+
tableKeyJobTypes: "jobtypesB",
|
|
6
|
+
tableKeyMaintenance: "maintenanceB",
|
|
7
|
+
tableKeySupportTickets: "supportticketsB",
|
|
8
|
+
tableNameJobTypes: "jobTypesB",
|
|
9
|
+
tableNameMaintenance: "maintenanceB",
|
|
10
|
+
tableNameSupportTickets: "supportticketsB",
|
|
11
|
+
permissionMaintenanceTracking: "maintenanceTrackingB",
|
|
12
|
+
permissionMaintenanceAssignment: "maintenanceAssignmentB",
|
|
13
|
+
permissionMaintenanceTypes: "maintenanceTypesB",
|
|
14
|
+
routeEntityPath: "/requestsHubB/jobDetails/:id",
|
|
15
|
+
screenMaintenanceDetail: "requestDetailB",
|
|
16
|
+
notificationMaintenanceJobAssigned: "MaintenanceJobAssignedB",
|
|
17
|
+
notificationMaintenanceJobUnassigned: "MaintenanceJobUnassignedB",
|
|
18
|
+
activityDeleteMaintenanceJob: "DeleteMaintenanceJobB",
|
|
19
|
+
activityEditMaintenanceJob: "EditMaintenanceJobB",
|
|
20
|
+
activityMaintenanceJobStatusChanged: "MaintenanceJobStatusChangedB",
|
|
21
|
+
activityAddMaintenanceNote: "AddMaintenanceNoteB",
|
|
22
|
+
activityDeleteMaintenanceNote: "DeleteMaintenanceNoteB",
|
|
23
|
+
activityEditMaintenanceNote: "EditMaintenanceNoteB",
|
|
24
|
+
textJobEmailTitle: "Service Request",
|
|
25
|
+
};
|
|
26
|
+
exports.values = values;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const values = {
|
|
2
|
+
entityKey: "maintenancerequestC",
|
|
3
|
+
serviceKey: "maintenanceC",
|
|
4
|
+
updateKey: "jobsC",
|
|
5
|
+
tableKeyJobTypes: "jobtypesC",
|
|
6
|
+
tableKeyMaintenance: "maintenanceC",
|
|
7
|
+
tableKeySupportTickets: "supportticketsC",
|
|
8
|
+
tableNameJobTypes: "jobTypesC",
|
|
9
|
+
tableNameMaintenance: "maintenanceC",
|
|
10
|
+
tableNameSupportTickets: "supportticketsC",
|
|
11
|
+
permissionMaintenanceTracking: "maintenanceTrackingC",
|
|
12
|
+
permissionMaintenanceAssignment: "maintenanceAssignmentC",
|
|
13
|
+
permissionMaintenanceTypes: "maintenanceTypesC",
|
|
14
|
+
routeEntityPath: "/requestsHubC/jobDetails/:id",
|
|
15
|
+
screenMaintenanceDetail: "requestDetailC",
|
|
16
|
+
notificationMaintenanceJobAssigned: "MaintenanceJobAssignedC",
|
|
17
|
+
notificationMaintenanceJobUnassigned: "MaintenanceJobUnassignedC",
|
|
18
|
+
activityDeleteMaintenanceJob: "DeleteMaintenanceJobC",
|
|
19
|
+
activityEditMaintenanceJob: "EditMaintenanceJobC",
|
|
20
|
+
activityMaintenanceJobStatusChanged: "MaintenanceJobStatusChangedC",
|
|
21
|
+
activityAddMaintenanceNote: "AddMaintenanceNoteC",
|
|
22
|
+
activityDeleteMaintenanceNote: "DeleteMaintenanceNoteC",
|
|
23
|
+
activityEditMaintenanceNote: "EditMaintenanceNoteC",
|
|
24
|
+
textJobEmailTitle: "Service Request",
|
|
25
|
+
};
|
|
26
|
+
exports.values = values;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const values = {
|
|
2
|
+
entityKey: "maintenancerequestD",
|
|
3
|
+
serviceKey: "maintenanceD",
|
|
4
|
+
updateKey: "jobsD",
|
|
5
|
+
tableKeyJobTypes: "jobtypesD",
|
|
6
|
+
tableKeyMaintenance: "maintenanceD",
|
|
7
|
+
tableKeySupportTickets: "supportticketsD",
|
|
8
|
+
tableNameJobTypes: "jobTypesD",
|
|
9
|
+
tableNameMaintenance: "maintenanceD",
|
|
10
|
+
tableNameSupportTickets: "supportticketsD",
|
|
11
|
+
permissionMaintenanceTracking: "maintenanceTrackingD",
|
|
12
|
+
permissionMaintenanceAssignment: "maintenanceAssignmentD",
|
|
13
|
+
permissionMaintenanceTypes: "maintenanceTypesD",
|
|
14
|
+
routeEntityPath: "/requestsHubD/jobDetails/:id",
|
|
15
|
+
screenMaintenanceDetail: "requestDetailD",
|
|
16
|
+
notificationMaintenanceJobAssigned: "MaintenanceJobAssignedD",
|
|
17
|
+
notificationMaintenanceJobUnassigned: "MaintenanceJobUnassignedD",
|
|
18
|
+
activityDeleteMaintenanceJob: "DeleteMaintenanceJobD",
|
|
19
|
+
activityEditMaintenanceJob: "EditMaintenanceJobD",
|
|
20
|
+
activityMaintenanceJobStatusChanged: "MaintenanceJobStatusChangedD",
|
|
21
|
+
activityAddMaintenanceNote: "AddMaintenanceNoteD",
|
|
22
|
+
activityDeleteMaintenanceNote: "DeleteMaintenanceNoteD",
|
|
23
|
+
activityEditMaintenanceNote: "EditMaintenanceNoteD",
|
|
24
|
+
textJobEmailTitle: "Service Request",
|
|
25
|
+
};
|
|
26
|
+
exports.values = values;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const values = {
|
|
2
|
+
entityKey: "maintenancerequest",
|
|
3
|
+
serviceKey: "maintenance",
|
|
4
|
+
updateKey: "jobs",
|
|
5
|
+
tableKeyJobTypes: "jobtypes",
|
|
6
|
+
tableKeyMaintenance: "maintenance",
|
|
7
|
+
tableKeySupportTickets: "supporttickets",
|
|
8
|
+
tableNameJobTypes: "jobTypes",
|
|
9
|
+
tableNameMaintenance: "maintenance",
|
|
10
|
+
tableNameSupportTickets: "supporttickets",
|
|
11
|
+
permissionMaintenanceTracking: "maintenanceTracking",
|
|
12
|
+
permissionMaintenanceAssignment: "maintenanceAssignment",
|
|
13
|
+
permissionMaintenanceTypes: "maintenanceTypes",
|
|
14
|
+
routeEntityPath: "/requestsHub/jobDetails/:id",
|
|
15
|
+
screenMaintenanceDetail: "requestDetail",
|
|
16
|
+
notificationMaintenanceJobAssigned: "MaintenanceJobAssigned",
|
|
17
|
+
notificationMaintenanceJobUnassigned: "MaintenanceJobUnassigned",
|
|
18
|
+
activityAddMaintenanceJob: "AddMaintenanceJob",
|
|
19
|
+
activityDeleteMaintenanceJob: "DeleteMaintenanceJob",
|
|
20
|
+
activityEditMaintenanceJob: "EditMaintenanceJob",
|
|
21
|
+
activityMaintenanceJobStatusChanged: "MaintenanceJobStatusChanged",
|
|
22
|
+
activityAddMaintenanceNote: "AddMaintenanceNote",
|
|
23
|
+
activityDeleteMaintenanceNote: "DeleteMaintenanceNote",
|
|
24
|
+
activityEditMaintenanceNote: "EditMaintenanceNote",
|
|
25
|
+
textJobEmailTitle: "Service Request",
|
|
26
|
+
allowGeneralType: true,
|
|
27
|
+
};
|
|
28
|
+
exports.values = values;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const values = {
|
|
2
|
+
entityKey: "maintenancerequestForms",
|
|
3
|
+
serviceKey: "maintenanceForms",
|
|
4
|
+
updateKey: "jobsForms",
|
|
5
|
+
tableKeyJobTypes: "jobtypesForms",
|
|
6
|
+
tableKeyMaintenance: "maintenanceForms",
|
|
7
|
+
tableKeySupportTickets: "supportticketsForms",
|
|
8
|
+
tableNameJobTypes: "jobTypesForms",
|
|
9
|
+
tableNameMaintenance: "maintenanceForms",
|
|
10
|
+
tableNameSupportTickets: "supportticketsForms",
|
|
11
|
+
permissionMaintenanceTracking: "maintenanceTrackingForms",
|
|
12
|
+
permissionMaintenanceAssignment: "maintenanceAssignmentForms",
|
|
13
|
+
permissionMaintenanceTypes: "maintenanceTypesForms",
|
|
14
|
+
routeEntityPath: "/requestsHubForms/jobDetails/:id",
|
|
15
|
+
screenMaintenanceDetail: "requestDetailForms",
|
|
16
|
+
notificationMaintenanceJobAssigned: "MaintenanceJobAssignedForms",
|
|
17
|
+
notificationMaintenanceJobUnassigned: "MaintenanceJobUnassignedForms",
|
|
18
|
+
activityAddMaintenanceJob: "AddMaintenanceJobForms",
|
|
19
|
+
activityDeleteMaintenanceJob: "DeleteMaintenanceJobForms",
|
|
20
|
+
activityEditMaintenanceJob: "EditMaintenanceJobForms",
|
|
21
|
+
activityMaintenanceJobStatusChanged: "MaintenanceJobStatusChangedForms",
|
|
22
|
+
activityAddMaintenanceNote: "AddMaintenanceNoteForms",
|
|
23
|
+
activityDeleteMaintenanceNote: "DeleteMaintenanceNoteForms",
|
|
24
|
+
activityEditMaintenanceNote: "EditMaintenanceNoteForms",
|
|
25
|
+
textJobEmailTitle: "Form Submission",
|
|
26
|
+
allowGeneralType: false,
|
|
27
|
+
};
|
|
28
|
+
exports.values = values;
|
package/values.config.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const values = {
|
|
2
|
+
entityKey: "maintenancerequestForms",
|
|
3
|
+
serviceKey: "maintenanceForms",
|
|
4
|
+
updateKey: "jobsForms",
|
|
5
|
+
tableKeyJobTypes: "jobtypesForms",
|
|
6
|
+
tableKeyMaintenance: "maintenanceForms",
|
|
7
|
+
tableKeySupportTickets: "supportticketsForms",
|
|
8
|
+
tableNameJobTypes: "jobTypesForms",
|
|
9
|
+
tableNameMaintenance: "maintenanceForms",
|
|
10
|
+
tableNameSupportTickets: "supportticketsForms",
|
|
11
|
+
permissionMaintenanceTracking: "maintenanceTrackingForms",
|
|
12
|
+
permissionMaintenanceAssignment: "maintenanceAssignmentForms",
|
|
13
|
+
permissionMaintenanceTypes: "maintenanceTypesForms",
|
|
14
|
+
routeEntityPath: "/requestsHubForms/jobDetails/:id",
|
|
15
|
+
screenMaintenanceDetail: "requestDetailForms",
|
|
16
|
+
notificationMaintenanceJobAssigned: "MaintenanceJobAssignedForms",
|
|
17
|
+
notificationMaintenanceJobUnassigned: "MaintenanceJobUnassignedForms",
|
|
18
|
+
activityAddMaintenanceJob: "AddMaintenanceJobForms",
|
|
19
|
+
activityDeleteMaintenanceJob: "DeleteMaintenanceJobForms",
|
|
20
|
+
activityEditMaintenanceJob: "EditMaintenanceJobForms",
|
|
21
|
+
activityMaintenanceJobStatusChanged: "MaintenanceJobStatusChangedForms",
|
|
22
|
+
activityAddMaintenanceNote: "AddMaintenanceNoteForms",
|
|
23
|
+
activityDeleteMaintenanceNote: "DeleteMaintenanceNoteForms",
|
|
24
|
+
activityEditMaintenanceNote: "EditMaintenanceNoteForms",
|
|
25
|
+
textJobEmailTitle: "Form Submission",
|
|
26
|
+
allowGeneralType: false,
|
|
27
|
+
};
|
|
28
|
+
exports.values = values;
|
package/watchJobs.js
ADDED
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
const moment = require("moment");
|
|
2
|
+
const _ = require("lodash");
|
|
3
|
+
const scanRefRecursive = require("@plusscommunities/pluss-core-aws/db/common/scanRefRecursive");
|
|
4
|
+
const logAnalyticsActivity = require("@plusscommunities/pluss-core-aws/db/analytics/logAnalyticsActivity");
|
|
5
|
+
const checkActivityExists = require("@plusscommunities/pluss-core-aws/db/analytics/checkActivityExists");
|
|
6
|
+
const updateRef = require("@plusscommunities/pluss-core-aws/db/common/updateRef");
|
|
7
|
+
const editRef = require("@plusscommunities/pluss-core-aws/db/common/editRef");
|
|
8
|
+
const getRef = require("@plusscommunities/pluss-core-aws/db/common/getRef");
|
|
9
|
+
const { getRowId, log } = require("@plusscommunities/pluss-core-aws/helper");
|
|
10
|
+
const getUserPreview = require("@plusscommunities/pluss-core-aws/helper/getUserPreview");
|
|
11
|
+
const { values } = require("./values.config");
|
|
12
|
+
|
|
13
|
+
const checkFixCompleted = async (job) => {
|
|
14
|
+
const logId = log("checkFixCompleted", "Input", job.id);
|
|
15
|
+
if (job.status !== "Completed") {
|
|
16
|
+
log("checkFixCompleted", "Incomplete", job.status);
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// find entry in history to determine who completed and at what time
|
|
21
|
+
let userId;
|
|
22
|
+
let time = job.lastActivity;
|
|
23
|
+
if (!_.isEmpty(job.history)) {
|
|
24
|
+
const entry = _.findLast(job.history, (e) => {
|
|
25
|
+
return e.status === "Completed";
|
|
26
|
+
});
|
|
27
|
+
if (entry) {
|
|
28
|
+
if (entry.user && entry.user.id) {
|
|
29
|
+
userId = entry.user.id;
|
|
30
|
+
}
|
|
31
|
+
time = entry.timestamp;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const user = await getUserPreview(userId);
|
|
35
|
+
|
|
36
|
+
// add old log
|
|
37
|
+
await logAnalyticsActivity(
|
|
38
|
+
"RequestCompleted",
|
|
39
|
+
values.entityKey,
|
|
40
|
+
job.site,
|
|
41
|
+
user,
|
|
42
|
+
job.id,
|
|
43
|
+
null,
|
|
44
|
+
moment(time).valueOf()
|
|
45
|
+
);
|
|
46
|
+
log("checkFixCompleted", "Logged", true, logId);
|
|
47
|
+
|
|
48
|
+
// tell system to aggregate this date again
|
|
49
|
+
const date = moment(time).local().format("DD-MM-YYYY");
|
|
50
|
+
log("checkFixCompleted", "QueueingDate", date, logId);
|
|
51
|
+
await updateRef("analyticsqueue", {
|
|
52
|
+
Id: getRowId(job.site, date),
|
|
53
|
+
Site: job.site,
|
|
54
|
+
Date: date,
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const fixActivityLog = async (job, startTime) => {
|
|
59
|
+
const now = moment().unix();
|
|
60
|
+
if (now - startTime > 240) {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// check whether it's already been logged
|
|
65
|
+
const exists = await checkActivityExists(job.id, values.entityKey, "Request");
|
|
66
|
+
const logId = log("fixActivityLog", "exists", exists);
|
|
67
|
+
|
|
68
|
+
if (!exists) {
|
|
69
|
+
const user = await getUserPreview(job.userID);
|
|
70
|
+
|
|
71
|
+
// add old log
|
|
72
|
+
await logAnalyticsActivity(
|
|
73
|
+
"Request",
|
|
74
|
+
values.entityKey,
|
|
75
|
+
job.site,
|
|
76
|
+
user,
|
|
77
|
+
job.id,
|
|
78
|
+
null,
|
|
79
|
+
moment(job.createdTime).valueOf()
|
|
80
|
+
);
|
|
81
|
+
log("fixActivityLog", "Logged", true, logId);
|
|
82
|
+
|
|
83
|
+
// tell system to aggregate this date again
|
|
84
|
+
const date = moment(job.createdTime).local().format("DD-MM-YYYY");
|
|
85
|
+
log("fixActivityLog", "QueueingDate", date, logId);
|
|
86
|
+
await updateRef("analyticsqueue", {
|
|
87
|
+
Id: getRowId(job.site, date),
|
|
88
|
+
Site: job.site,
|
|
89
|
+
Date: date,
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
// check whether to log activity for the job's completion
|
|
93
|
+
await checkFixCompleted(job);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// update entry to show it's been logged
|
|
97
|
+
await editRef(values.tableNameMaintenance, "id", job.id, {
|
|
98
|
+
ActivityLogged: true,
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
return true;
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
const checkFixLog = async (startTime) => {
|
|
105
|
+
// Check whether all posts have been logged
|
|
106
|
+
const logId = log("checkFixLog", "StartTime", startTime);
|
|
107
|
+
const stringSite = "plussSpace";
|
|
108
|
+
const stringId = `JobActivityLogged`;
|
|
109
|
+
const stringRowId = getRowId(stringSite, stringId);
|
|
110
|
+
try {
|
|
111
|
+
const string = await getRef("strings", "RowId", stringRowId);
|
|
112
|
+
if (string && string.Value === "true") {
|
|
113
|
+
log("checkFixLog", "ActivityLogged", true, logId);
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
} catch (e) {
|
|
117
|
+
// ignore error
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// Scans the DynamoDB table and fetch all items. The parameters describe which attributes to get.
|
|
121
|
+
const items = await scanRefRecursive(values.tableNameMaintenance, {
|
|
122
|
+
ProjectionExpression:
|
|
123
|
+
"#id, site, createdTime, #status, lastActivity, history, ActivityLogged",
|
|
124
|
+
ExpressionAttributeNames: {
|
|
125
|
+
"#id": "id",
|
|
126
|
+
"#status": "status",
|
|
127
|
+
},
|
|
128
|
+
});
|
|
129
|
+
log(
|
|
130
|
+
"checkFixLog",
|
|
131
|
+
"FetchedItemsCount",
|
|
132
|
+
{
|
|
133
|
+
count: items.length,
|
|
134
|
+
},
|
|
135
|
+
logId
|
|
136
|
+
);
|
|
137
|
+
|
|
138
|
+
// Filters out items which have already had the activity log operation applied.
|
|
139
|
+
const itemsToProcess = items.filter((item) => !item.ActivityLogged);
|
|
140
|
+
log(
|
|
141
|
+
"checkFixLog",
|
|
142
|
+
"ItemsToProcessCount",
|
|
143
|
+
{ count: itemsToProcess.length },
|
|
144
|
+
logId
|
|
145
|
+
);
|
|
146
|
+
|
|
147
|
+
// Finished logging old entries. Save to avoid continuous full scans of the table.
|
|
148
|
+
if (_.isEmpty(itemsToProcess)) {
|
|
149
|
+
const entry = {
|
|
150
|
+
Site: stringSite,
|
|
151
|
+
StringId: stringId,
|
|
152
|
+
Value: "true",
|
|
153
|
+
RowId: stringRowId,
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
await updateRef("strings", entry);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// The loop goes through the remaining items and applies the fixActivityLog operation on each item.
|
|
160
|
+
// If the operation fails on an item, it logs the error but continues with the remaining items.
|
|
161
|
+
for (let item of itemsToProcess) {
|
|
162
|
+
// try {
|
|
163
|
+
await fixActivityLog(item, startTime);
|
|
164
|
+
log("checkFixLog", "SuccessFixActivityLog", { id: item.Id }, logId);
|
|
165
|
+
// } catch (err) {
|
|
166
|
+
// log("checkFixLog", `Error:${item.Id}`, err, logId);
|
|
167
|
+
// }
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
log("checkFixLog", "End", "All items processed", logId);
|
|
171
|
+
return true;
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
module.exports.watchJobs = async (event, context, callback) => {
|
|
175
|
+
const startTime = moment().unix();
|
|
176
|
+
await checkFixLog(startTime);
|
|
177
|
+
};
|