@oneuptime/common 7.0.3517 → 7.0.3538
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/Models/DatabaseModels/AlertFeed.ts +12 -4
- package/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.ts +2 -0
- package/Models/DatabaseModels/OnCallDutyPolicyExecutionLogTimeline.ts +59 -2
- package/Models/DatabaseModels/ScheduledMaintenanceFeed.ts +15 -7
- package/Models/DatabaseModels/UserNotificationRule.ts +50 -0
- package/Models/DatabaseModels/UserOnCallLog.ts +48 -1
- package/Models/DatabaseModels/UserOnCallLogTimeline.ts +49 -2
- package/Server/API/BillingInvoiceAPI.ts +2 -32
- package/Server/API/UserOnCallLogTimelineAPI.ts +32 -8
- package/Server/Infrastructure/Postgres/SchemaMigrations/1737141420441-MigrationName.ts +131 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
- package/Server/Services/AlertFeedService.ts +44 -37
- package/Server/Services/AlertInternalNoteService.ts +73 -0
- package/Server/Services/AlertOwnerTeamService.ts +112 -0
- package/Server/Services/AlertOwnerUserService.ts +114 -0
- package/Server/Services/AlertService.ts +121 -0
- package/Server/Services/AlertStateTimelineService.ts +52 -0
- package/Server/Services/BillingInvoiceService.ts +170 -0
- package/Server/Services/IncidentFeedService.ts +59 -54
- package/Server/Services/IncidentInternalNoteService.ts +46 -1
- package/Server/Services/IncidentPublicNoteService.ts +47 -2
- package/Server/Services/OnCallDutyPolicyEscalationRuleService.ts +32 -14
- package/Server/Services/OnCallDutyPolicyExecutionLogService.ts +86 -27
- package/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.ts +30 -12
- package/Server/Services/ScheduledMaintenanceFeedService.ts +51 -40
- package/Server/Services/ScheduledMaintenanceInternalNoteService.ts +75 -0
- package/Server/Services/ScheduledMaintenanceOwnerTeamService.ts +116 -0
- package/Server/Services/ScheduledMaintenanceOwnerUserService.ts +118 -0
- package/Server/Services/ScheduledMaintenancePublicNoteService.ts +74 -1
- package/Server/Services/ScheduledMaintenanceService.ts +68 -0
- package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +30 -0
- package/Server/Services/UserNotificationRuleService.ts +450 -67
- package/Server/Services/UserOnCallLogService.ts +61 -18
- package/Server/Services/UserOnCallLogTimelineService.ts +25 -11
- package/Server/Utils/Logger.ts +14 -0
- package/Types/Email/EmailTemplateType.ts +1 -0
- package/Types/NotificationRule/NotificationRuleType.ts +1 -1
- package/UI/Utils/Project.ts +25 -0
- package/build/dist/Models/DatabaseModels/AlertFeed.js +12 -4
- package/build/dist/Models/DatabaseModels/AlertFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js +2 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLogTimeline.js +60 -2
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLogTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceFeed.js +15 -7
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserNotificationRule.js +49 -0
- package/build/dist/Models/DatabaseModels/UserNotificationRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserOnCallLog.js +48 -1
- package/build/dist/Models/DatabaseModels/UserOnCallLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js +50 -2
- package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js.map +1 -1
- package/build/dist/Server/API/BillingInvoiceAPI.js +2 -19
- package/build/dist/Server/API/BillingInvoiceAPI.js.map +1 -1
- package/build/dist/Server/API/UserOnCallLogTimelineAPI.js +10 -2
- package/build/dist/Server/API/UserOnCallLogTimelineAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1737141420441-MigrationName.js +50 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1737141420441-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/AlertFeedService.js +43 -35
- package/build/dist/Server/Services/AlertFeedService.js.map +1 -1
- package/build/dist/Server/Services/AlertInternalNoteService.js +56 -0
- package/build/dist/Server/Services/AlertInternalNoteService.js.map +1 -1
- package/build/dist/Server/Services/AlertOwnerTeamService.js +86 -0
- package/build/dist/Server/Services/AlertOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/AlertOwnerUserService.js +89 -0
- package/build/dist/Server/Services/AlertOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/AlertService.js +107 -3
- package/build/dist/Server/Services/AlertService.js.map +1 -1
- package/build/dist/Server/Services/AlertStateTimelineService.js +44 -1
- package/build/dist/Server/Services/AlertStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/BillingInvoiceService.js +123 -0
- package/build/dist/Server/Services/BillingInvoiceService.js.map +1 -1
- package/build/dist/Server/Services/IncidentFeedService.js +45 -39
- package/build/dist/Server/Services/IncidentFeedService.js.map +1 -1
- package/build/dist/Server/Services/IncidentInternalNoteService.js +37 -0
- package/build/dist/Server/Services/IncidentInternalNoteService.js.map +1 -1
- package/build/dist/Server/Services/IncidentPublicNoteService.js +38 -1
- package/build/dist/Server/Services/IncidentPublicNoteService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js +18 -8
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js +70 -24
- package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js +26 -11
- package/build/dist/Server/Services/OnCallDutyPolicyExecutionLogTimelineService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceFeedService.js +45 -37
- package/build/dist/Server/Services/ScheduledMaintenanceFeedService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceInternalNoteService.js +56 -0
- package/build/dist/Server/Services/ScheduledMaintenanceInternalNoteService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceOwnerTeamService.js +86 -0
- package/build/dist/Server/Services/ScheduledMaintenanceOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceOwnerUserService.js +89 -0
- package/build/dist/Server/Services/ScheduledMaintenanceOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenancePublicNoteService.js +56 -0
- package/build/dist/Server/Services/ScheduledMaintenancePublicNoteService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceService.js +57 -0
- package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +24 -0
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/UserNotificationRuleService.js +334 -67
- package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
- package/build/dist/Server/Services/UserOnCallLogService.js +66 -27
- package/build/dist/Server/Services/UserOnCallLogService.js.map +1 -1
- package/build/dist/Server/Services/UserOnCallLogTimelineService.js +16 -5
- package/build/dist/Server/Services/UserOnCallLogTimelineService.js.map +1 -1
- package/build/dist/Server/Utils/Logger.js +11 -0
- package/build/dist/Server/Utils/Logger.js.map +1 -1
- package/build/dist/Types/Email/EmailTemplateType.js +1 -0
- package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
- package/build/dist/Types/NotificationRule/NotificationRuleType.js +1 -1
- package/build/dist/Types/NotificationRule/NotificationRuleType.js.map +1 -1
- package/build/dist/UI/Utils/Project.js +11 -0
- package/build/dist/UI/Utils/Project.js.map +1 -1
- package/package.json +2 -2
|
@@ -14,6 +14,8 @@ import MonitorStatusTimeline from "Common/Models/DatabaseModels/MonitorStatusTim
|
|
|
14
14
|
import ScheduledMaintenancePublicNote from "Common/Models/DatabaseModels/ScheduledMaintenancePublicNote";
|
|
15
15
|
import ScheduledMaintenanceStateTimeline from "Common/Models/DatabaseModels/ScheduledMaintenanceStateTimeline";
|
|
16
16
|
import { IsBillingEnabled } from "../EnvironmentConfig";
|
|
17
|
+
import ScheduledMaintenanceFeedService from "./ScheduledMaintenanceFeedService";
|
|
18
|
+
import { ScheduledMaintenanceFeedEventType } from "../../Models/DatabaseModels/ScheduledMaintenanceFeed";
|
|
17
19
|
export class Service extends DatabaseService {
|
|
18
20
|
constructor() {
|
|
19
21
|
super(ScheduledMaintenanceStateTimeline);
|
|
@@ -101,6 +103,28 @@ export class Service extends DatabaseService {
|
|
|
101
103
|
isRoot: true,
|
|
102
104
|
},
|
|
103
105
|
});
|
|
106
|
+
const scheduledMaintenanceState = await ScheduledMaintenanceStateService.findOneBy({
|
|
107
|
+
query: {
|
|
108
|
+
_id: createdItem.scheduledMaintenanceStateId.toString(),
|
|
109
|
+
},
|
|
110
|
+
props: {
|
|
111
|
+
isRoot: true,
|
|
112
|
+
},
|
|
113
|
+
select: {
|
|
114
|
+
_id: true,
|
|
115
|
+
color: true,
|
|
116
|
+
name: true,
|
|
117
|
+
},
|
|
118
|
+
});
|
|
119
|
+
const stateName = (scheduledMaintenanceState === null || scheduledMaintenanceState === void 0 ? void 0 : scheduledMaintenanceState.name) || "";
|
|
120
|
+
await ScheduledMaintenanceFeedService.createScheduledMaintenanceFeed({
|
|
121
|
+
scheduledMaintenanceId: createdItem.scheduledMaintenanceId,
|
|
122
|
+
projectId: createdItem.projectId,
|
|
123
|
+
scheduledMaintenanceFeedEventType: ScheduledMaintenanceFeedEventType.ScheduledMaintenanceStateChanged,
|
|
124
|
+
displayColor: scheduledMaintenanceState === null || scheduledMaintenanceState === void 0 ? void 0 : scheduledMaintenanceState.color,
|
|
125
|
+
feedInfoInMarkdown: "**Scheduled Maintenance State** changed to **" + stateName + "**",
|
|
126
|
+
userId: createdItem.createdByUserId || onCreate.createBy.props.userId,
|
|
127
|
+
});
|
|
104
128
|
// TODO: DELETE THIS WHEN WORKFLOW IS IMPLEMENMTED.
|
|
105
129
|
// check if this is resolved state, and if it is then resolve all the monitors.
|
|
106
130
|
const isResolvedState = await ScheduledMaintenanceStateService.findOneBy({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScheduledMaintenanceStateTimelineService.js","sourceRoot":"","sources":["../../../../Server/Services/ScheduledMaintenanceStateTimelineService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ScheduledMaintenanceStateTimelineService.js","sourceRoot":"","sources":["../../../../Server/Services/ScheduledMaintenanceStateTimelineService.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,13 +25,15 @@ import UserEmail from "Common/Models/DatabaseModels/UserEmail";
|
|
|
25
25
|
import Model from "Common/Models/DatabaseModels/UserNotificationRule";
|
|
26
26
|
import UserOnCallLog from "Common/Models/DatabaseModels/UserOnCallLog";
|
|
27
27
|
import UserOnCallLogTimeline from "Common/Models/DatabaseModels/UserOnCallLogTimeline";
|
|
28
|
+
import AlertService from "./AlertService";
|
|
29
|
+
import AlertSeverityService from "./AlertSeverityService";
|
|
28
30
|
export class Service extends DatabaseService {
|
|
29
31
|
constructor() {
|
|
30
32
|
super(Model);
|
|
31
33
|
}
|
|
32
34
|
async executeNotificationRuleItem(userNotificationRuleId, options) {
|
|
33
35
|
// get user notification log and see if this rule has already been executed. If so then skip.
|
|
34
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
|
|
36
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
|
|
35
37
|
const userOnCallLog = await UserOnCallLogService.findOneById({
|
|
36
38
|
id: options.userNotificationLogId,
|
|
37
39
|
props: {
|
|
@@ -114,12 +116,16 @@ export class Service extends DatabaseService {
|
|
|
114
116
|
if (options.triggeredByIncidentId) {
|
|
115
117
|
logTimelineItem.triggeredByIncidentId = options.triggeredByIncidentId;
|
|
116
118
|
}
|
|
119
|
+
if (options.triggeredByAlertId) {
|
|
120
|
+
logTimelineItem.triggeredByAlertId = options.triggeredByAlertId;
|
|
121
|
+
}
|
|
117
122
|
if (options.onCallDutyPolicyExecutionLogTimelineId) {
|
|
118
123
|
logTimelineItem.onCallDutyPolicyExecutionLogTimelineId =
|
|
119
124
|
options.onCallDutyPolicyExecutionLogTimelineId;
|
|
120
125
|
}
|
|
121
126
|
// add status and status message and save.
|
|
122
127
|
let incident = null;
|
|
128
|
+
let alert = null;
|
|
123
129
|
if (options.userNotificationEventType ===
|
|
124
130
|
UserNotificationEventType.IncidentCreated &&
|
|
125
131
|
options.triggeredByIncidentId) {
|
|
@@ -146,18 +152,75 @@ export class Service extends DatabaseService {
|
|
|
146
152
|
},
|
|
147
153
|
});
|
|
148
154
|
}
|
|
149
|
-
if (
|
|
150
|
-
|
|
155
|
+
if (options.userNotificationEventType ===
|
|
156
|
+
UserNotificationEventType.AlertCreated &&
|
|
157
|
+
options.triggeredByAlertId) {
|
|
158
|
+
alert = await AlertService.findOneById({
|
|
159
|
+
id: options.triggeredByAlertId,
|
|
160
|
+
props: {
|
|
161
|
+
isRoot: true,
|
|
162
|
+
},
|
|
163
|
+
select: {
|
|
164
|
+
_id: true,
|
|
165
|
+
title: true,
|
|
166
|
+
description: true,
|
|
167
|
+
projectId: true,
|
|
168
|
+
project: {
|
|
169
|
+
name: true,
|
|
170
|
+
},
|
|
171
|
+
currentAlertState: {
|
|
172
|
+
name: true,
|
|
173
|
+
},
|
|
174
|
+
alertSeverity: {
|
|
175
|
+
name: true,
|
|
176
|
+
},
|
|
177
|
+
},
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
if (!incident && !alert) {
|
|
181
|
+
throw new BadDataException("Incident or Alert not found.");
|
|
151
182
|
}
|
|
152
183
|
if (((_a = notificationRuleItem.userEmail) === null || _a === void 0 ? void 0 : _a.email) &&
|
|
153
184
|
((_b = notificationRuleItem.userEmail) === null || _b === void 0 ? void 0 : _b.isVerified)) {
|
|
154
|
-
// send email.
|
|
185
|
+
// send email for alert.
|
|
186
|
+
if (options.userNotificationEventType ===
|
|
187
|
+
UserNotificationEventType.AlertCreated &&
|
|
188
|
+
alert) {
|
|
189
|
+
// create an error log.
|
|
190
|
+
logTimelineItem.status = UserNotificationStatus.Sending;
|
|
191
|
+
logTimelineItem.statusMessage = `Sending email to ${(_c = notificationRuleItem.userEmail) === null || _c === void 0 ? void 0 : _c.email.toString()}`;
|
|
192
|
+
logTimelineItem.userEmailId = notificationRuleItem.userEmail.id;
|
|
193
|
+
const updatedLog = await UserOnCallLogTimelineService.create({
|
|
194
|
+
data: logTimelineItem,
|
|
195
|
+
props: {
|
|
196
|
+
isRoot: true,
|
|
197
|
+
},
|
|
198
|
+
});
|
|
199
|
+
const emailMessage = await this.generateEmailTemplateForAlertCreated((_d = notificationRuleItem.userEmail) === null || _d === void 0 ? void 0 : _d.email, alert, updatedLog.id);
|
|
200
|
+
// send email.
|
|
201
|
+
MailService.sendMail(emailMessage, {
|
|
202
|
+
userOnCallLogTimelineId: updatedLog.id,
|
|
203
|
+
projectId: options.projectId,
|
|
204
|
+
}).catch(async (err) => {
|
|
205
|
+
await UserOnCallLogTimelineService.updateOneById({
|
|
206
|
+
id: updatedLog.id,
|
|
207
|
+
data: {
|
|
208
|
+
status: UserNotificationStatus.Error,
|
|
209
|
+
statusMessage: err.message || "Error sending email.",
|
|
210
|
+
},
|
|
211
|
+
props: {
|
|
212
|
+
isRoot: true,
|
|
213
|
+
},
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
// send email for incident
|
|
155
218
|
if (options.userNotificationEventType ===
|
|
156
219
|
UserNotificationEventType.IncidentCreated &&
|
|
157
220
|
incident) {
|
|
158
221
|
// create an error log.
|
|
159
222
|
logTimelineItem.status = UserNotificationStatus.Sending;
|
|
160
|
-
logTimelineItem.statusMessage = `Sending email to ${(
|
|
223
|
+
logTimelineItem.statusMessage = `Sending email to ${(_e = notificationRuleItem.userEmail) === null || _e === void 0 ? void 0 : _e.email.toString()}`;
|
|
161
224
|
logTimelineItem.userEmailId = notificationRuleItem.userEmail.id;
|
|
162
225
|
const updatedLog = await UserOnCallLogTimelineService.create({
|
|
163
226
|
data: logTimelineItem,
|
|
@@ -165,7 +228,7 @@ export class Service extends DatabaseService {
|
|
|
165
228
|
isRoot: true,
|
|
166
229
|
},
|
|
167
230
|
});
|
|
168
|
-
const emailMessage = await this.generateEmailTemplateForIncidentCreated((
|
|
231
|
+
const emailMessage = await this.generateEmailTemplateForIncidentCreated((_f = notificationRuleItem.userEmail) === null || _f === void 0 ? void 0 : _f.email, incident, updatedLog.id);
|
|
169
232
|
// send email.
|
|
170
233
|
MailService.sendMail(emailMessage, {
|
|
171
234
|
userOnCallLogTimelineId: updatedLog.id,
|
|
@@ -185,11 +248,11 @@ export class Service extends DatabaseService {
|
|
|
185
248
|
}
|
|
186
249
|
}
|
|
187
250
|
// if you have an email but is not verified, then create a log.
|
|
188
|
-
if (((
|
|
189
|
-
!((
|
|
251
|
+
if (((_g = notificationRuleItem.userEmail) === null || _g === void 0 ? void 0 : _g.email) &&
|
|
252
|
+
!((_h = notificationRuleItem.userEmail) === null || _h === void 0 ? void 0 : _h.isVerified)) {
|
|
190
253
|
// create an error log.
|
|
191
254
|
logTimelineItem.status = UserNotificationStatus.Error;
|
|
192
|
-
logTimelineItem.statusMessage = `Email notification not sent because email ${(
|
|
255
|
+
logTimelineItem.statusMessage = `Email notification not sent because email ${(_j = notificationRuleItem.userEmail) === null || _j === void 0 ? void 0 : _j.email.toString()} is not verified.`;
|
|
193
256
|
await UserOnCallLogTimelineService.create({
|
|
194
257
|
data: logTimelineItem,
|
|
195
258
|
props: {
|
|
@@ -198,15 +261,47 @@ export class Service extends DatabaseService {
|
|
|
198
261
|
});
|
|
199
262
|
}
|
|
200
263
|
// send sms.
|
|
201
|
-
if (((
|
|
202
|
-
((
|
|
203
|
-
//
|
|
264
|
+
if (((_k = notificationRuleItem.userSms) === null || _k === void 0 ? void 0 : _k.phone) &&
|
|
265
|
+
((_l = notificationRuleItem.userSms) === null || _l === void 0 ? void 0 : _l.isVerified)) {
|
|
266
|
+
//send sms for alert
|
|
267
|
+
if (options.userNotificationEventType ===
|
|
268
|
+
UserNotificationEventType.AlertCreated &&
|
|
269
|
+
alert) {
|
|
270
|
+
// create an error log.
|
|
271
|
+
logTimelineItem.status = UserNotificationStatus.Sending;
|
|
272
|
+
logTimelineItem.statusMessage = `Sending SMS to ${(_m = notificationRuleItem.userSms) === null || _m === void 0 ? void 0 : _m.phone.toString()}.`;
|
|
273
|
+
logTimelineItem.userSmsId = notificationRuleItem.userSms.id;
|
|
274
|
+
const updatedLog = await UserOnCallLogTimelineService.create({
|
|
275
|
+
data: logTimelineItem,
|
|
276
|
+
props: {
|
|
277
|
+
isRoot: true,
|
|
278
|
+
},
|
|
279
|
+
});
|
|
280
|
+
const smsMessage = await this.generateSmsTemplateForAlertCreated(notificationRuleItem.userSms.phone, alert, updatedLog.id);
|
|
281
|
+
// send email.
|
|
282
|
+
SmsService.sendSms(smsMessage, {
|
|
283
|
+
projectId: alert.projectId,
|
|
284
|
+
userOnCallLogTimelineId: updatedLog.id,
|
|
285
|
+
}).catch(async (err) => {
|
|
286
|
+
await UserOnCallLogTimelineService.updateOneById({
|
|
287
|
+
id: updatedLog.id,
|
|
288
|
+
data: {
|
|
289
|
+
status: UserNotificationStatus.Error,
|
|
290
|
+
statusMessage: err.message || "Error sending SMS.",
|
|
291
|
+
},
|
|
292
|
+
props: {
|
|
293
|
+
isRoot: true,
|
|
294
|
+
},
|
|
295
|
+
});
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
// send sms for incident
|
|
204
299
|
if (options.userNotificationEventType ===
|
|
205
300
|
UserNotificationEventType.IncidentCreated &&
|
|
206
301
|
incident) {
|
|
207
302
|
// create an error log.
|
|
208
303
|
logTimelineItem.status = UserNotificationStatus.Sending;
|
|
209
|
-
logTimelineItem.statusMessage = `Sending SMS to ${(
|
|
304
|
+
logTimelineItem.statusMessage = `Sending SMS to ${(_o = notificationRuleItem.userSms) === null || _o === void 0 ? void 0 : _o.phone.toString()}.`;
|
|
210
305
|
logTimelineItem.userSmsId = notificationRuleItem.userSms.id;
|
|
211
306
|
const updatedLog = await UserOnCallLogTimelineService.create({
|
|
212
307
|
data: logTimelineItem,
|
|
@@ -233,11 +328,11 @@ export class Service extends DatabaseService {
|
|
|
233
328
|
});
|
|
234
329
|
}
|
|
235
330
|
}
|
|
236
|
-
if (((
|
|
237
|
-
!((
|
|
331
|
+
if (((_p = notificationRuleItem.userSms) === null || _p === void 0 ? void 0 : _p.phone) &&
|
|
332
|
+
!((_q = notificationRuleItem.userSms) === null || _q === void 0 ? void 0 : _q.isVerified)) {
|
|
238
333
|
// create a log.
|
|
239
334
|
logTimelineItem.status = UserNotificationStatus.Error;
|
|
240
|
-
logTimelineItem.statusMessage = `SMS not sent because phone ${(
|
|
335
|
+
logTimelineItem.statusMessage = `SMS not sent because phone ${(_r = notificationRuleItem.userSms) === null || _r === void 0 ? void 0 : _r.phone.toString()} is not verified.`;
|
|
241
336
|
await UserOnCallLogTimelineService.create({
|
|
242
337
|
data: logTimelineItem,
|
|
243
338
|
props: {
|
|
@@ -246,41 +341,77 @@ export class Service extends DatabaseService {
|
|
|
246
341
|
});
|
|
247
342
|
}
|
|
248
343
|
// send call.
|
|
249
|
-
if (((
|
|
250
|
-
((
|
|
251
|
-
// send call
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
CallService.makeCall(callRequest, {
|
|
264
|
-
projectId: incident.projectId,
|
|
265
|
-
userOnCallLogTimelineId: updatedLog.id,
|
|
266
|
-
}).catch(async (err) => {
|
|
267
|
-
await UserOnCallLogTimelineService.updateOneById({
|
|
268
|
-
id: updatedLog.id,
|
|
269
|
-
data: {
|
|
270
|
-
status: UserNotificationStatus.Error,
|
|
271
|
-
statusMessage: err.message || "Error making call.",
|
|
344
|
+
if (((_s = notificationRuleItem.userCall) === null || _s === void 0 ? void 0 : _s.phone) &&
|
|
345
|
+
((_t = notificationRuleItem.userCall) === null || _t === void 0 ? void 0 : _t.isVerified)) {
|
|
346
|
+
// send call for alert
|
|
347
|
+
if (options.userNotificationEventType ===
|
|
348
|
+
UserNotificationEventType.AlertCreated &&
|
|
349
|
+
alert) {
|
|
350
|
+
// create an error log.
|
|
351
|
+
logTimelineItem.status = UserNotificationStatus.Sending;
|
|
352
|
+
logTimelineItem.statusMessage = `Making a call to ${(_u = notificationRuleItem.userCall) === null || _u === void 0 ? void 0 : _u.phone.toString()}.`;
|
|
353
|
+
logTimelineItem.userCallId = notificationRuleItem.userCall.id;
|
|
354
|
+
const updatedLog = await UserOnCallLogTimelineService.create({
|
|
355
|
+
data: logTimelineItem,
|
|
356
|
+
props: {
|
|
357
|
+
isRoot: true,
|
|
272
358
|
},
|
|
359
|
+
});
|
|
360
|
+
const callRequest = await this.generateCallTemplateForAlertCreated((_v = notificationRuleItem.userCall) === null || _v === void 0 ? void 0 : _v.phone, alert, updatedLog.id);
|
|
361
|
+
// send email.
|
|
362
|
+
CallService.makeCall(callRequest, {
|
|
363
|
+
projectId: alert.projectId,
|
|
364
|
+
userOnCallLogTimelineId: updatedLog.id,
|
|
365
|
+
}).catch(async (err) => {
|
|
366
|
+
await UserOnCallLogTimelineService.updateOneById({
|
|
367
|
+
id: updatedLog.id,
|
|
368
|
+
data: {
|
|
369
|
+
status: UserNotificationStatus.Error,
|
|
370
|
+
statusMessage: err.message || "Error making call.",
|
|
371
|
+
},
|
|
372
|
+
props: {
|
|
373
|
+
isRoot: true,
|
|
374
|
+
},
|
|
375
|
+
});
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
if (options.userNotificationEventType ===
|
|
379
|
+
UserNotificationEventType.IncidentCreated &&
|
|
380
|
+
incident) {
|
|
381
|
+
// send call for incident
|
|
382
|
+
logTimelineItem.status = UserNotificationStatus.Sending;
|
|
383
|
+
logTimelineItem.statusMessage = `Making a call to ${(_w = notificationRuleItem.userCall) === null || _w === void 0 ? void 0 : _w.phone.toString()}.`;
|
|
384
|
+
logTimelineItem.userCallId = notificationRuleItem.userCall.id;
|
|
385
|
+
const updatedLog = await UserOnCallLogTimelineService.create({
|
|
386
|
+
data: logTimelineItem,
|
|
273
387
|
props: {
|
|
274
388
|
isRoot: true,
|
|
275
389
|
},
|
|
276
390
|
});
|
|
277
|
-
|
|
391
|
+
const callRequest = await this.generateCallTemplateForIncidentCreated((_x = notificationRuleItem.userCall) === null || _x === void 0 ? void 0 : _x.phone, incident, updatedLog.id);
|
|
392
|
+
// send email.
|
|
393
|
+
CallService.makeCall(callRequest, {
|
|
394
|
+
projectId: incident.projectId,
|
|
395
|
+
userOnCallLogTimelineId: updatedLog.id,
|
|
396
|
+
}).catch(async (err) => {
|
|
397
|
+
await UserOnCallLogTimelineService.updateOneById({
|
|
398
|
+
id: updatedLog.id,
|
|
399
|
+
data: {
|
|
400
|
+
status: UserNotificationStatus.Error,
|
|
401
|
+
statusMessage: err.message || "Error making call.",
|
|
402
|
+
},
|
|
403
|
+
props: {
|
|
404
|
+
isRoot: true,
|
|
405
|
+
},
|
|
406
|
+
});
|
|
407
|
+
});
|
|
408
|
+
}
|
|
278
409
|
}
|
|
279
|
-
if (((
|
|
280
|
-
!((
|
|
410
|
+
if (((_y = notificationRuleItem.userCall) === null || _y === void 0 ? void 0 : _y.phone) &&
|
|
411
|
+
!((_z = notificationRuleItem.userCall) === null || _z === void 0 ? void 0 : _z.isVerified)) {
|
|
281
412
|
// create a log.
|
|
282
413
|
logTimelineItem.status = UserNotificationStatus.Error;
|
|
283
|
-
logTimelineItem.statusMessage = `Call not sent because phone ${(
|
|
414
|
+
logTimelineItem.statusMessage = `Call not sent because phone ${(_0 = notificationRuleItem.userCall) === null || _0 === void 0 ? void 0 : _0.phone.toString()} is not verified.`;
|
|
284
415
|
await UserOnCallLogTimelineService.create({
|
|
285
416
|
data: logTimelineItem,
|
|
286
417
|
props: {
|
|
@@ -289,6 +420,42 @@ export class Service extends DatabaseService {
|
|
|
289
420
|
});
|
|
290
421
|
}
|
|
291
422
|
}
|
|
423
|
+
async generateCallTemplateForAlertCreated(to, alert, userOnCallLogTimelineId) {
|
|
424
|
+
const host = await DatabaseConfig.getHost();
|
|
425
|
+
const httpProtocol = await DatabaseConfig.getHttpProtocol();
|
|
426
|
+
const callRequest = {
|
|
427
|
+
to: to,
|
|
428
|
+
data: [
|
|
429
|
+
{
|
|
430
|
+
sayMessage: "This is a call from OneUptime",
|
|
431
|
+
},
|
|
432
|
+
{
|
|
433
|
+
sayMessage: "A new alert has been created",
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
sayMessage: alert.title,
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
introMessage: "To acknowledge this alert press 1",
|
|
440
|
+
numDigits: 1,
|
|
441
|
+
timeoutInSeconds: 10,
|
|
442
|
+
noInputMessage: "You have not entered any input. Good bye",
|
|
443
|
+
onInputCallRequest: {
|
|
444
|
+
"1": {
|
|
445
|
+
sayMessage: "You have acknowledged this alert. Good bye",
|
|
446
|
+
},
|
|
447
|
+
default: {
|
|
448
|
+
sayMessage: "Invalid input. Good bye",
|
|
449
|
+
},
|
|
450
|
+
},
|
|
451
|
+
responseUrl: new URL(httpProtocol, host, new Route(AppApiRoute.toString())
|
|
452
|
+
.addRoute(new UserOnCallLogTimeline().crudApiPath)
|
|
453
|
+
.addRoute("/call/gather-input/" + userOnCallLogTimelineId.toString())),
|
|
454
|
+
},
|
|
455
|
+
],
|
|
456
|
+
};
|
|
457
|
+
return callRequest;
|
|
458
|
+
}
|
|
292
459
|
async generateCallTemplateForIncidentCreated(to, incident, userOnCallLogTimelineId) {
|
|
293
460
|
const host = await DatabaseConfig.getHost();
|
|
294
461
|
const httpProtocol = await DatabaseConfig.getHttpProtocol();
|
|
@@ -325,6 +492,19 @@ export class Service extends DatabaseService {
|
|
|
325
492
|
};
|
|
326
493
|
return callRequest;
|
|
327
494
|
}
|
|
495
|
+
async generateSmsTemplateForAlertCreated(to, alert, userOnCallLogTimelineId) {
|
|
496
|
+
const host = await DatabaseConfig.getHost();
|
|
497
|
+
const httpProtocol = await DatabaseConfig.getHttpProtocol();
|
|
498
|
+
const shortUrl = await ShortLinkService.saveShortLinkFor(new URL(httpProtocol, host, new Route(AppApiRoute.toString())
|
|
499
|
+
.addRoute(new UserOnCallLogTimeline().crudApiPath)
|
|
500
|
+
.addRoute("/acknowledge/" + userOnCallLogTimelineId.toString())));
|
|
501
|
+
const url = await ShortLinkService.getShortenedUrl(shortUrl);
|
|
502
|
+
const sms = {
|
|
503
|
+
to,
|
|
504
|
+
message: `This is a message from OneUptime. A new alert has been created. ${alert.title}. To acknowledge this alert, please click on the following link ${url.toString()}`,
|
|
505
|
+
};
|
|
506
|
+
return sms;
|
|
507
|
+
}
|
|
328
508
|
async generateSmsTemplateForIncidentCreated(to, incident, userOnCallLogTimelineId) {
|
|
329
509
|
const host = await DatabaseConfig.getHost();
|
|
330
510
|
const httpProtocol = await DatabaseConfig.getHttpProtocol();
|
|
@@ -338,6 +518,28 @@ export class Service extends DatabaseService {
|
|
|
338
518
|
};
|
|
339
519
|
return sms;
|
|
340
520
|
}
|
|
521
|
+
async generateEmailTemplateForAlertCreated(to, alert, userOnCallLogTimelineId) {
|
|
522
|
+
const host = await DatabaseConfig.getHost();
|
|
523
|
+
const httpProtocol = await DatabaseConfig.getHttpProtocol();
|
|
524
|
+
const vars = {
|
|
525
|
+
alertTitle: alert.title,
|
|
526
|
+
projectName: alert.project.name,
|
|
527
|
+
currentState: alert.currentAlertState.name,
|
|
528
|
+
alertDescription: await Markdown.convertToHTML(alert.description || "", MarkdownContentType.Email),
|
|
529
|
+
alertSeverity: alert.alertSeverity.name,
|
|
530
|
+
alertViewLink: (await AlertService.getAlertLinkInDashboard(alert.projectId, alert.id)).toString(),
|
|
531
|
+
acknowledgeAlertLink: new URL(httpProtocol, host, new Route(AppApiRoute.toString())
|
|
532
|
+
.addRoute(new UserOnCallLogTimeline().crudApiPath)
|
|
533
|
+
.addRoute("/acknowledge/" + userOnCallLogTimelineId.toString())).toString(),
|
|
534
|
+
};
|
|
535
|
+
const emailMessage = {
|
|
536
|
+
toEmail: to,
|
|
537
|
+
templateType: EmailTemplateType.AcknowledgeAlert,
|
|
538
|
+
vars: vars,
|
|
539
|
+
subject: "ACTION REQUIRED: Alert created - " + alert.title,
|
|
540
|
+
};
|
|
541
|
+
return emailMessage;
|
|
542
|
+
}
|
|
341
543
|
async generateEmailTemplateForIncidentCreated(to, incident, userOnCallLogTimelineId) {
|
|
342
544
|
const host = await DatabaseConfig.getHost();
|
|
343
545
|
const httpProtocol = await DatabaseConfig.getHttpProtocol();
|
|
@@ -369,6 +571,9 @@ export class Service extends DatabaseService {
|
|
|
369
571
|
if (options.triggeredByIncidentId) {
|
|
370
572
|
userOnCallLog.triggeredByIncidentId = options.triggeredByIncidentId;
|
|
371
573
|
}
|
|
574
|
+
if (options.triggeredByAlertId) {
|
|
575
|
+
userOnCallLog.triggeredByAlertId = options.triggeredByAlertId;
|
|
576
|
+
}
|
|
372
577
|
userOnCallLog.userNotificationEventType = options.userNotificationEventType;
|
|
373
578
|
if (options.onCallPolicyExecutionLogId) {
|
|
374
579
|
userOnCallLog.onCallDutyPolicyExecutionLogId =
|
|
@@ -414,7 +619,8 @@ export class Service extends DatabaseService {
|
|
|
414
619
|
carryForward: null,
|
|
415
620
|
};
|
|
416
621
|
}
|
|
417
|
-
async
|
|
622
|
+
async addDefaultIncidentNotificationRuleForUser(data) {
|
|
623
|
+
const { projectId, userId, userEmail } = data;
|
|
418
624
|
const incidentSeverities = await IncidentSeverityService.findBy({
|
|
419
625
|
query: {
|
|
420
626
|
projectId,
|
|
@@ -428,40 +634,64 @@ export class Service extends DatabaseService {
|
|
|
428
634
|
_id: true,
|
|
429
635
|
},
|
|
430
636
|
});
|
|
431
|
-
//
|
|
432
|
-
|
|
637
|
+
// create for incident severities.
|
|
638
|
+
for (const incidentSeverity of incidentSeverities) {
|
|
639
|
+
//check if this rule already exists.
|
|
640
|
+
const existingRule = await this.findOneBy({
|
|
641
|
+
query: {
|
|
642
|
+
projectId,
|
|
643
|
+
userId,
|
|
644
|
+
userEmailId: userEmail.id,
|
|
645
|
+
incidentSeverityId: incidentSeverity.id,
|
|
646
|
+
ruleType: NotificationRuleType.ON_CALL_EXECUTED,
|
|
647
|
+
},
|
|
648
|
+
props: {
|
|
649
|
+
isRoot: true,
|
|
650
|
+
},
|
|
651
|
+
});
|
|
652
|
+
if (existingRule) {
|
|
653
|
+
continue; // skip this rule.
|
|
654
|
+
}
|
|
655
|
+
const notificationRule = new Model();
|
|
656
|
+
notificationRule.projectId = projectId;
|
|
657
|
+
notificationRule.userId = userId;
|
|
658
|
+
notificationRule.userEmailId = userEmail.id;
|
|
659
|
+
notificationRule.incidentSeverityId = incidentSeverity.id;
|
|
660
|
+
notificationRule.notifyAfterMinutes = 0;
|
|
661
|
+
notificationRule.ruleType = NotificationRuleType.ON_CALL_EXECUTED;
|
|
662
|
+
await this.create({
|
|
663
|
+
data: notificationRule,
|
|
664
|
+
props: {
|
|
665
|
+
isRoot: true,
|
|
666
|
+
},
|
|
667
|
+
});
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
async addDefaultAlertNotificationRulesForUser(data) {
|
|
671
|
+
const { projectId, userId, userEmail } = data;
|
|
672
|
+
const alertSeverities = await AlertSeverityService.findBy({
|
|
433
673
|
query: {
|
|
434
674
|
projectId,
|
|
435
|
-
userId,
|
|
436
|
-
email,
|
|
437
675
|
},
|
|
438
676
|
props: {
|
|
439
677
|
isRoot: true,
|
|
440
678
|
},
|
|
679
|
+
limit: LIMIT_PER_PROJECT,
|
|
680
|
+
skip: 0,
|
|
681
|
+
select: {
|
|
682
|
+
_id: true,
|
|
683
|
+
},
|
|
441
684
|
});
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
userEmail.projectId = projectId;
|
|
445
|
-
userEmail.userId = userId;
|
|
446
|
-
userEmail.email = email;
|
|
447
|
-
userEmail.isVerified = true;
|
|
448
|
-
userEmail = await UserEmailService.create({
|
|
449
|
-
data: userEmail,
|
|
450
|
-
props: {
|
|
451
|
-
isRoot: true,
|
|
452
|
-
},
|
|
453
|
-
});
|
|
454
|
-
}
|
|
455
|
-
// create for incident severities.
|
|
456
|
-
for (const incidentSeverity of incidentSeverities) {
|
|
685
|
+
// create for Alert severities.
|
|
686
|
+
for (const alertSeverity of alertSeverities) {
|
|
457
687
|
//check if this rule already exists.
|
|
458
688
|
const existingRule = await this.findOneBy({
|
|
459
689
|
query: {
|
|
460
690
|
projectId,
|
|
461
691
|
userId,
|
|
462
692
|
userEmailId: userEmail.id,
|
|
463
|
-
|
|
464
|
-
ruleType: NotificationRuleType.
|
|
693
|
+
alertSeverityId: alertSeverity.id,
|
|
694
|
+
ruleType: NotificationRuleType.ON_CALL_EXECUTED,
|
|
465
695
|
},
|
|
466
696
|
props: {
|
|
467
697
|
isRoot: true,
|
|
@@ -474,9 +704,9 @@ export class Service extends DatabaseService {
|
|
|
474
704
|
notificationRule.projectId = projectId;
|
|
475
705
|
notificationRule.userId = userId;
|
|
476
706
|
notificationRule.userEmailId = userEmail.id;
|
|
477
|
-
notificationRule.
|
|
707
|
+
notificationRule.alertSeverityId = alertSeverity.id;
|
|
478
708
|
notificationRule.notifyAfterMinutes = 0;
|
|
479
|
-
notificationRule.ruleType = NotificationRuleType.
|
|
709
|
+
notificationRule.ruleType = NotificationRuleType.ON_CALL_EXECUTED;
|
|
480
710
|
await this.create({
|
|
481
711
|
data: notificationRule,
|
|
482
712
|
props: {
|
|
@@ -484,6 +714,43 @@ export class Service extends DatabaseService {
|
|
|
484
714
|
},
|
|
485
715
|
});
|
|
486
716
|
}
|
|
717
|
+
}
|
|
718
|
+
async addDefaultNotificationRuleForUser(projectId, userId, email) {
|
|
719
|
+
let userEmail = await UserEmailService.findOneBy({
|
|
720
|
+
query: {
|
|
721
|
+
projectId,
|
|
722
|
+
userId,
|
|
723
|
+
email,
|
|
724
|
+
},
|
|
725
|
+
props: {
|
|
726
|
+
isRoot: true,
|
|
727
|
+
},
|
|
728
|
+
});
|
|
729
|
+
if (!userEmail) {
|
|
730
|
+
userEmail = new UserEmail();
|
|
731
|
+
userEmail.projectId = projectId;
|
|
732
|
+
userEmail.userId = userId;
|
|
733
|
+
userEmail.email = email;
|
|
734
|
+
userEmail.isVerified = true;
|
|
735
|
+
userEmail = await UserEmailService.create({
|
|
736
|
+
data: userEmail,
|
|
737
|
+
props: {
|
|
738
|
+
isRoot: true,
|
|
739
|
+
},
|
|
740
|
+
});
|
|
741
|
+
}
|
|
742
|
+
// add default incident rules for user
|
|
743
|
+
await this.addDefaultIncidentNotificationRuleForUser({
|
|
744
|
+
projectId,
|
|
745
|
+
userId,
|
|
746
|
+
userEmail,
|
|
747
|
+
});
|
|
748
|
+
// add default alert rules for user, just like the incident
|
|
749
|
+
await this.addDefaultAlertNotificationRulesForUser({
|
|
750
|
+
projectId,
|
|
751
|
+
userId,
|
|
752
|
+
userEmail,
|
|
753
|
+
});
|
|
487
754
|
//check if this rule already exists.
|
|
488
755
|
const existingRuleOnCall = await this.findOneBy({
|
|
489
756
|
query: {
|