@oneuptime/common 7.0.4007 → 7.0.4026
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/Server/Services/AlertStateTimelineService.ts +66 -0
- package/Server/Services/IncidentStateTimelineService.ts +66 -0
- package/Server/Services/MonitorService.ts +72 -1
- package/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.ts +243 -0
- package/Server/Services/OnCallDutyPolicyEscalationRuleService.ts +46 -0
- package/Server/Services/OnCallDutyPolicyEscalationRuleTeamService.ts +237 -0
- package/Server/Services/OnCallDutyPolicyEscalationRuleUserService.ts +210 -0
- package/Server/Services/OnCallDutyPolicyScheduleService.ts +392 -14
- package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +76 -0
- package/Server/Services/UserNotificationSettingService.ts +114 -237
- package/Server/Services/UserService.ts +21 -0
- package/Server/Services/WorkspaceNotificationRuleService.ts +128 -35
- package/Server/Utils/Workspace/Slack/Actions/Alert.ts +2 -2
- package/Server/Utils/Workspace/Slack/Actions/Incident.ts +3 -3
- package/Server/Utils/Workspace/Slack/Slack.ts +59 -0
- package/Server/Utils/Workspace/WorkspaceBase.ts +10 -0
- package/Types/Email/EmailTemplateType.ts +6 -0
- package/Types/NotificationSetting/NotificationSettingEventType.ts +7 -0
- package/Types/Workspace/NotificationRules/CreateChannelNotificationRule.ts +4 -0
- package/build/dist/Server/Services/AlertStateTimelineService.js +50 -0
- package/build/dist/Server/Services/AlertStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentStateTimelineService.js +50 -0
- package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +56 -1
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js +170 -0
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleScheduleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js +40 -0
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleTeamService.js +170 -0
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleTeamService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleUserService.js +152 -0
- package/build/dist/Server/Services/OnCallDutyPolicyEscalationRuleUserService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js +266 -10
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +52 -0
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/UserNotificationSettingService.js +35 -202
- package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
- package/build/dist/Server/Services/UserService.js +17 -0
- package/build/dist/Server/Services/UserService.js.map +1 -1
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js +101 -29
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Actions/Alert.js +2 -2
- package/build/dist/Server/Utils/Workspace/Slack/Actions/Incident.js +3 -3
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js +46 -0
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/WorkspaceBase.js +9 -0
- package/build/dist/Server/Utils/Workspace/WorkspaceBase.js.map +1 -1
- package/build/dist/Types/Email/EmailTemplateType.js +5 -0
- package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
- package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js +6 -0
- package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,9 +1,161 @@
|
|
|
1
|
+
import BadDataException from "../../Types/Exception/BadDataException";
|
|
1
2
|
import DatabaseService from "./DatabaseService";
|
|
2
3
|
import Model from "Common/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleUser";
|
|
4
|
+
import OnCallDutyPolicyService from "./OnCallDutyPolicyService";
|
|
5
|
+
import EmailTemplateType from "../../Types/Email/EmailTemplateType";
|
|
6
|
+
import UserNotificationSettingService from "./UserNotificationSettingService";
|
|
7
|
+
import NotificationSettingEventType from "../../Types/NotificationSetting/NotificationSettingEventType";
|
|
8
|
+
import { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
|
|
3
9
|
export class Service extends DatabaseService {
|
|
4
10
|
constructor() {
|
|
5
11
|
super(Model);
|
|
6
12
|
}
|
|
13
|
+
async onCreateSuccess(_onCreate, createdItem) {
|
|
14
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
15
|
+
const createdItemId = createdItem.id;
|
|
16
|
+
if (!createdItemId) {
|
|
17
|
+
throw new BadDataException("Created item does not have an ID");
|
|
18
|
+
}
|
|
19
|
+
const createdModel = await this.findOneById({
|
|
20
|
+
id: createdItemId,
|
|
21
|
+
select: {
|
|
22
|
+
projectId: true,
|
|
23
|
+
user: {
|
|
24
|
+
timezone: true,
|
|
25
|
+
_id: true,
|
|
26
|
+
},
|
|
27
|
+
onCallDutyPolicyEscalationRule: {
|
|
28
|
+
name: true,
|
|
29
|
+
_id: true,
|
|
30
|
+
order: true,
|
|
31
|
+
},
|
|
32
|
+
onCallDutyPolicy: {
|
|
33
|
+
name: true,
|
|
34
|
+
_id: true,
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
props: {
|
|
38
|
+
isRoot: true,
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
// send notification to the new current user.
|
|
42
|
+
const sendEmailToUserId = (_a = createdModel === null || createdModel === void 0 ? void 0 : createdModel.user) === null || _a === void 0 ? void 0 : _a.id;
|
|
43
|
+
if (!sendEmailToUserId) {
|
|
44
|
+
return createdItem;
|
|
45
|
+
}
|
|
46
|
+
if (!createdModel) {
|
|
47
|
+
return createdItem;
|
|
48
|
+
}
|
|
49
|
+
const vars = {
|
|
50
|
+
onCallPolicyName: ((_b = createdModel.onCallDutyPolicy) === null || _b === void 0 ? void 0 : _b.name) || "No name provided",
|
|
51
|
+
escalationRuleName: ((_c = createdModel.onCallDutyPolicyEscalationRule) === null || _c === void 0 ? void 0 : _c.name) || "No name provided",
|
|
52
|
+
escalationRuleOrder: ((_e = (_d = createdModel.onCallDutyPolicyEscalationRule) === null || _d === void 0 ? void 0 : _d.order) === null || _e === void 0 ? void 0 : _e.toString()) ||
|
|
53
|
+
"No order provided",
|
|
54
|
+
reason: "You have been added to the on-call duty policy escalation rule.",
|
|
55
|
+
onCallPolicyViewLink: (await OnCallDutyPolicyService.getOnCallPolicyLinkInDashboard(createdModel.projectId, createdModel.onCallDutyPolicy.id)).toString(),
|
|
56
|
+
};
|
|
57
|
+
// current user changed, send alert the new current user.
|
|
58
|
+
const emailMessage = {
|
|
59
|
+
templateType: EmailTemplateType.UserAddedToOnCallPolicy,
|
|
60
|
+
vars: vars,
|
|
61
|
+
subject: `You have been added to the on-call duty policy ${(_f = createdModel.onCallDutyPolicy) === null || _f === void 0 ? void 0 : _f.name}`,
|
|
62
|
+
};
|
|
63
|
+
const sms = {
|
|
64
|
+
message: `This is a message from OneUptime. You have been added to the on-call duty policy ${(_g = createdModel.onCallDutyPolicy) === null || _g === void 0 ? void 0 : _g.name} for escalation rule ${(_h = createdModel.onCallDutyPolicyEscalationRule) === null || _h === void 0 ? void 0 : _h.name} with order ${(_j = createdModel.onCallDutyPolicyEscalationRule) === null || _j === void 0 ? void 0 : _j.order}. To unsubscribe from this notification go to User Settings in OneUptime Dashboard.`,
|
|
65
|
+
};
|
|
66
|
+
const callMessage = {
|
|
67
|
+
data: [
|
|
68
|
+
{
|
|
69
|
+
sayMessage: `This is a message from OneUptime. You have been added to the on-call duty policy ${(_k = createdModel.onCallDutyPolicy) === null || _k === void 0 ? void 0 : _k.name} for escalation rule ${(_l = createdModel.onCallDutyPolicyEscalationRule) === null || _l === void 0 ? void 0 : _l.name} with order ${(_m = createdModel.onCallDutyPolicyEscalationRule) === null || _m === void 0 ? void 0 : _m.order}. To unsubscribe from this notification go to User Settings in OneUptime Dashboard. Good Bye`,
|
|
70
|
+
},
|
|
71
|
+
],
|
|
72
|
+
};
|
|
73
|
+
await UserNotificationSettingService.sendUserNotification({
|
|
74
|
+
userId: sendEmailToUserId,
|
|
75
|
+
projectId: createdModel.projectId,
|
|
76
|
+
emailEnvelope: emailMessage,
|
|
77
|
+
smsMessage: sms,
|
|
78
|
+
callRequestMessage: callMessage,
|
|
79
|
+
eventType: NotificationSettingEventType.SEND_WHEN_USER_IS_ADDED_TO_ON_CALL_POLICY,
|
|
80
|
+
});
|
|
81
|
+
return createdItem;
|
|
82
|
+
}
|
|
83
|
+
async onBeforeDelete(deleteBy) {
|
|
84
|
+
const itemsToFetchBeforeDelete = await this.findBy({
|
|
85
|
+
query: deleteBy.query,
|
|
86
|
+
props: {
|
|
87
|
+
isRoot: true,
|
|
88
|
+
},
|
|
89
|
+
select: {
|
|
90
|
+
projectId: true,
|
|
91
|
+
user: {
|
|
92
|
+
timezone: true,
|
|
93
|
+
_id: true,
|
|
94
|
+
},
|
|
95
|
+
onCallDutyPolicyEscalationRule: {
|
|
96
|
+
name: true,
|
|
97
|
+
_id: true,
|
|
98
|
+
order: true,
|
|
99
|
+
},
|
|
100
|
+
onCallDutyPolicy: {
|
|
101
|
+
name: true,
|
|
102
|
+
_id: true,
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
limit: LIMIT_PER_PROJECT,
|
|
106
|
+
skip: 0,
|
|
107
|
+
});
|
|
108
|
+
return {
|
|
109
|
+
deleteBy,
|
|
110
|
+
carryForward: {
|
|
111
|
+
deletedItems: itemsToFetchBeforeDelete,
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
async onDeleteSuccess(onDelete, _itemIdsBeforeDelete) {
|
|
116
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
117
|
+
const deletedItems = onDelete.carryForward.deletedItems;
|
|
118
|
+
for (const deletedItem of deletedItems) {
|
|
119
|
+
const sendEmailToUserId = (_a = deletedItem.user) === null || _a === void 0 ? void 0 : _a.id;
|
|
120
|
+
if (!sendEmailToUserId) {
|
|
121
|
+
return onDelete;
|
|
122
|
+
}
|
|
123
|
+
const vars = {
|
|
124
|
+
onCallPolicyName: ((_b = deletedItem.onCallDutyPolicy) === null || _b === void 0 ? void 0 : _b.name) || "No name provided",
|
|
125
|
+
escalationRuleName: ((_c = deletedItem.onCallDutyPolicyEscalationRule) === null || _c === void 0 ? void 0 : _c.name) ||
|
|
126
|
+
"No name provided",
|
|
127
|
+
escalationRuleOrder: ((_e = (_d = deletedItem.onCallDutyPolicyEscalationRule) === null || _d === void 0 ? void 0 : _d.order) === null || _e === void 0 ? void 0 : _e.toString()) ||
|
|
128
|
+
"No order provided",
|
|
129
|
+
reason: "You have been removed from the on-call duty policy escalation rule.",
|
|
130
|
+
onCallPolicyViewLink: (await OnCallDutyPolicyService.getOnCallPolicyLinkInDashboard(deletedItem.projectId, deletedItem.onCallDutyPolicy.id)).toString(),
|
|
131
|
+
};
|
|
132
|
+
// current user changed, send alert the new current user.
|
|
133
|
+
const emailMessage = {
|
|
134
|
+
templateType: EmailTemplateType.UserRemovedFromOnCallPolicy,
|
|
135
|
+
vars: vars,
|
|
136
|
+
subject: `You have been removed from the on-call duty policy ${(_f = deletedItem.onCallDutyPolicy) === null || _f === void 0 ? void 0 : _f.name}`,
|
|
137
|
+
};
|
|
138
|
+
const sms = {
|
|
139
|
+
message: `This is a message from OneUptime. You have been removed from the on-call duty policy ${(_g = deletedItem.onCallDutyPolicy) === null || _g === void 0 ? void 0 : _g.name} for escalation rule ${(_h = deletedItem.onCallDutyPolicyEscalationRule) === null || _h === void 0 ? void 0 : _h.name} with order ${(_j = deletedItem.onCallDutyPolicyEscalationRule) === null || _j === void 0 ? void 0 : _j.order}. To unsubscribe from this notification go to User Settings in OneUptime Dashboard.`,
|
|
140
|
+
};
|
|
141
|
+
const callMessage = {
|
|
142
|
+
data: [
|
|
143
|
+
{
|
|
144
|
+
sayMessage: `This is a message from OneUptime. You have been removed from the on-call duty policy ${(_k = deletedItem.onCallDutyPolicy) === null || _k === void 0 ? void 0 : _k.name} for escalation rule ${(_l = deletedItem.onCallDutyPolicyEscalationRule) === null || _l === void 0 ? void 0 : _l.name} with order ${(_m = deletedItem.onCallDutyPolicyEscalationRule) === null || _m === void 0 ? void 0 : _m.order}. To unsubscribe from this notification go to User Settings in OneUptime Dashboard. Good Bye`,
|
|
145
|
+
},
|
|
146
|
+
],
|
|
147
|
+
};
|
|
148
|
+
UserNotificationSettingService.sendUserNotification({
|
|
149
|
+
userId: sendEmailToUserId,
|
|
150
|
+
projectId: deletedItem.projectId,
|
|
151
|
+
emailEnvelope: emailMessage,
|
|
152
|
+
smsMessage: sms,
|
|
153
|
+
callRequestMessage: callMessage,
|
|
154
|
+
eventType: NotificationSettingEventType.SEND_WHEN_USER_IS_REMOVED_FROM_ON_CALL_POLICY,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
return onDelete;
|
|
158
|
+
}
|
|
7
159
|
}
|
|
8
160
|
export default new Service();
|
|
9
161
|
//# sourceMappingURL=OnCallDutyPolicyEscalationRuleUserService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnCallDutyPolicyEscalationRuleUserService.js","sourceRoot":"","sources":["../../../../Server/Services/OnCallDutyPolicyEscalationRuleUserService.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,MAAM,iEAAiE,CAAC;AAEpF,MAAM,OAAO,OAAQ,SAAQ,eAAsB;IACjD;QACE,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;CACF;AACD,eAAe,IAAI,OAAO,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"OnCallDutyPolicyEscalationRuleUserService.js","sourceRoot":"","sources":["../../../../Server/Services/OnCallDutyPolicyEscalationRuleUserService.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,11 +15,18 @@ import { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
|
|
|
15
15
|
import OneUptimeDate from "../../Types/Date";
|
|
16
16
|
import ObjectID from "../../Types/ObjectID";
|
|
17
17
|
import LayerUtil from "../../Types/OnCallDutyPolicy/Layer";
|
|
18
|
-
import Model from "Common/Models/DatabaseModels/OnCallDutyPolicySchedule";
|
|
19
18
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
19
|
+
import OnCallDutyPolicySchedule from "Common/Models/DatabaseModels/OnCallDutyPolicySchedule";
|
|
20
|
+
import OnCallDutyPolicyEscalationRuleScheduleService from "./OnCallDutyPolicyEscalationRuleScheduleService";
|
|
21
|
+
import EmailTemplateType from "../../Types/Email/EmailTemplateType";
|
|
22
|
+
import UserService from "./UserService";
|
|
23
|
+
import OnCallDutyPolicyService from "./OnCallDutyPolicyService";
|
|
24
|
+
import UserNotificationSettingService from "./UserNotificationSettingService";
|
|
25
|
+
import NotificationSettingEventType from "../../Types/NotificationSetting/NotificationSettingEventType";
|
|
26
|
+
import BadDataException from "../../Types/Exception/BadDataException";
|
|
20
27
|
export class Service extends DatabaseService {
|
|
21
28
|
constructor() {
|
|
22
|
-
super(
|
|
29
|
+
super(OnCallDutyPolicySchedule);
|
|
23
30
|
}
|
|
24
31
|
async getOnCallSchedulesWhereUserIsOnCallDuty(data) {
|
|
25
32
|
const schedules = await this.findBy({
|
|
@@ -39,24 +46,273 @@ export class Service extends DatabaseService {
|
|
|
39
46
|
});
|
|
40
47
|
return schedules;
|
|
41
48
|
}
|
|
49
|
+
async sendNotificationToUserOnScheduleHandoff(data) {
|
|
50
|
+
// Before we send any notification, we need to check if this schedule is attached to any on-call policy.
|
|
51
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
52
|
+
const escalationRulesAttachedToSchedule = await OnCallDutyPolicyEscalationRuleScheduleService.findBy({
|
|
53
|
+
query: {
|
|
54
|
+
onCallDutyPolicyScheduleId: data.scheduleId,
|
|
55
|
+
},
|
|
56
|
+
select: {
|
|
57
|
+
projectId: true,
|
|
58
|
+
_id: true,
|
|
59
|
+
onCallDutyPolicy: {
|
|
60
|
+
name: true,
|
|
61
|
+
_id: true,
|
|
62
|
+
},
|
|
63
|
+
onCallDutyPolicyEscalationRule: {
|
|
64
|
+
name: true,
|
|
65
|
+
_id: true,
|
|
66
|
+
order: true,
|
|
67
|
+
},
|
|
68
|
+
onCallDutyPolicySchedule: {
|
|
69
|
+
name: true,
|
|
70
|
+
_id: true,
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
props: {
|
|
74
|
+
isRoot: true,
|
|
75
|
+
},
|
|
76
|
+
limit: LIMIT_PER_PROJECT,
|
|
77
|
+
skip: 0,
|
|
78
|
+
});
|
|
79
|
+
if (escalationRulesAttachedToSchedule.length === 0) {
|
|
80
|
+
// do nothing.
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
for (const escalationRule of escalationRulesAttachedToSchedule) {
|
|
84
|
+
const projectId = escalationRule.projectId;
|
|
85
|
+
const onCallSchedule = escalationRule.onCallDutyPolicySchedule;
|
|
86
|
+
if (!onCallSchedule) {
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
const onCallPolicy = escalationRule.onCallDutyPolicy;
|
|
90
|
+
if (!onCallPolicy) {
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
const onCallDutyPolicyEscalationRule = escalationRule.onCallDutyPolicyEscalationRule;
|
|
94
|
+
if (!onCallDutyPolicyEscalationRule) {
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
const { previousInformation, newInformation } = data;
|
|
98
|
+
// if there's a change, witht he current user, send notification to the new current user.
|
|
99
|
+
// Send notificiation to the new current user.
|
|
100
|
+
if (((_a = previousInformation.currentUserIdOnRoster) === null || _a === void 0 ? void 0 : _a.toString()) !==
|
|
101
|
+
((_b = newInformation.currentUserIdOnRoster) === null || _b === void 0 ? void 0 : _b.toString()) ||
|
|
102
|
+
((_c = previousInformation.rosterHandoffAt) === null || _c === void 0 ? void 0 : _c.toString()) !==
|
|
103
|
+
((_d = newInformation.rosterHandoffAt) === null || _d === void 0 ? void 0 : _d.toString())) {
|
|
104
|
+
if (((_e = previousInformation.currentUserIdOnRoster) === null || _e === void 0 ? void 0 : _e.toString()) !==
|
|
105
|
+
((_f = newInformation.currentUserIdOnRoster) === null || _f === void 0 ? void 0 : _f.toString()) &&
|
|
106
|
+
((_g = previousInformation.currentUserIdOnRoster) === null || _g === void 0 ? void 0 : _g.toString())) {
|
|
107
|
+
// the user has changed. Send notifiction to old user that he has been removed.
|
|
108
|
+
// send notification to the new current user.
|
|
109
|
+
const sendEmailToUserId = previousInformation.currentUserIdOnRoster;
|
|
110
|
+
const userTimezone = await UserService.getTimezoneForUser(sendEmailToUserId);
|
|
111
|
+
const vars = {
|
|
112
|
+
onCallPolicyName: onCallPolicy.name || "No name provided",
|
|
113
|
+
escalationRuleName: onCallDutyPolicyEscalationRule.name || "No name provided",
|
|
114
|
+
escalationRuleOrder: ((_h = onCallDutyPolicyEscalationRule.order) === null || _h === void 0 ? void 0 : _h.toString()) || "-",
|
|
115
|
+
reason: "Your on-call roster on schedule " +
|
|
116
|
+
onCallSchedule.name +
|
|
117
|
+
" just ended.",
|
|
118
|
+
rosterStartsAt: OneUptimeDate.getDateAsFormattedHTMLInMultipleTimezones({
|
|
119
|
+
date: previousInformation.rosterStartAt,
|
|
120
|
+
timezones: userTimezone ? [userTimezone] : [],
|
|
121
|
+
}),
|
|
122
|
+
rosterEndsAt: OneUptimeDate.getDateAsFormattedHTMLInMultipleTimezones({
|
|
123
|
+
date: OneUptimeDate.isInTheFuture(previousInformation.rosterHandoffAt)
|
|
124
|
+
? OneUptimeDate.getCurrentDate()
|
|
125
|
+
: previousInformation.rosterHandoffAt,
|
|
126
|
+
timezones: userTimezone ? [userTimezone] : [],
|
|
127
|
+
}),
|
|
128
|
+
onCallPolicyViewLink: (await OnCallDutyPolicyService.getOnCallPolicyLinkInDashboard(projectId, onCallPolicy.id)).toString(),
|
|
129
|
+
};
|
|
130
|
+
// current user changed, send alert the new current user.
|
|
131
|
+
const emailMessage = {
|
|
132
|
+
templateType: EmailTemplateType.UserNoLongerActiveOnOnCallRoster,
|
|
133
|
+
vars: vars,
|
|
134
|
+
subject: "You are no longer on-call for " + onCallPolicy.name,
|
|
135
|
+
};
|
|
136
|
+
const sms = {
|
|
137
|
+
message: `This is a message from OneUptime. You are no longer on-call for ${onCallPolicy.name} because your on-call roster on schedule ${onCallSchedule.name} just ended. To unsubscribe from this notification go to User Settings in OneUptime Dashboard.`,
|
|
138
|
+
};
|
|
139
|
+
const callMessage = {
|
|
140
|
+
data: [
|
|
141
|
+
{
|
|
142
|
+
sayMessage: `This is a message from OneUptime. You are no longer on-call for ${onCallPolicy.name} because your on-call roster on schedule ${onCallSchedule.name} just ended. To unsubscribe from this notification go to User Settings in OneUptime Dashboard. Good bye.`,
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
};
|
|
146
|
+
await UserNotificationSettingService.sendUserNotification({
|
|
147
|
+
userId: sendEmailToUserId,
|
|
148
|
+
projectId: projectId,
|
|
149
|
+
emailEnvelope: emailMessage,
|
|
150
|
+
smsMessage: sms,
|
|
151
|
+
callRequestMessage: callMessage,
|
|
152
|
+
eventType: NotificationSettingEventType.SEND_WHEN_USER_IS_NO_LONGER_ACTIVE_ON_ON_CALL_ROSTER,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
if ((_j = newInformation.currentUserIdOnRoster) === null || _j === void 0 ? void 0 : _j.toString()) {
|
|
156
|
+
// send email to the new current user.
|
|
157
|
+
const sendEmailToUserId = newInformation.currentUserIdOnRoster;
|
|
158
|
+
const userTimezone = await UserService.getTimezoneForUser(sendEmailToUserId);
|
|
159
|
+
const vars = {
|
|
160
|
+
onCallPolicyName: onCallPolicy.name || "No name provided",
|
|
161
|
+
escalationRuleName: onCallDutyPolicyEscalationRule.name || "No name provided",
|
|
162
|
+
escalationRuleOrder: ((_k = onCallDutyPolicyEscalationRule.order) === null || _k === void 0 ? void 0 : _k.toString()) || "-",
|
|
163
|
+
reason: "You are now on-call for the policy " +
|
|
164
|
+
onCallPolicy.name +
|
|
165
|
+
" because your on-call roster on schedule " +
|
|
166
|
+
onCallSchedule.name,
|
|
167
|
+
rosterStartsAt: OneUptimeDate.getDateAsFormattedHTMLInMultipleTimezones({
|
|
168
|
+
date: newInformation.rosterStartAt,
|
|
169
|
+
timezones: userTimezone ? [userTimezone] : [],
|
|
170
|
+
}),
|
|
171
|
+
rosterEndsAt: OneUptimeDate.getDateAsFormattedHTMLInMultipleTimezones({
|
|
172
|
+
date: newInformation.rosterHandoffAt,
|
|
173
|
+
timezones: userTimezone ? [userTimezone] : [],
|
|
174
|
+
}),
|
|
175
|
+
onCallPolicyViewLink: (await OnCallDutyPolicyService.getOnCallPolicyLinkInDashboard(projectId, onCallPolicy.id)).toString(),
|
|
176
|
+
};
|
|
177
|
+
const emailMessage = {
|
|
178
|
+
templateType: EmailTemplateType.UserCurrentlyOnOnCallRoster,
|
|
179
|
+
vars: vars,
|
|
180
|
+
subject: "You are now on-call for " + onCallPolicy.name,
|
|
181
|
+
};
|
|
182
|
+
const sms = {
|
|
183
|
+
message: `This is a message from OneUptime. You are now on-call for ${onCallPolicy.name} because you are now on the roster for schedule ${onCallSchedule.name}. To unsubscribe from this notification go to User Settings in OneUptime Dashboard.`,
|
|
184
|
+
};
|
|
185
|
+
const callMessage = {
|
|
186
|
+
data: [
|
|
187
|
+
{
|
|
188
|
+
sayMessage: `This is a message from OneUptime. You are now on-call for ${onCallPolicy.name} because you are now on the roster for schedule ${onCallSchedule.name}. To unsubscribe from this notification go to User Settings in OneUptime Dashboard. Good bye.`,
|
|
189
|
+
},
|
|
190
|
+
],
|
|
191
|
+
};
|
|
192
|
+
await UserNotificationSettingService.sendUserNotification({
|
|
193
|
+
userId: sendEmailToUserId,
|
|
194
|
+
projectId: projectId,
|
|
195
|
+
emailEnvelope: emailMessage,
|
|
196
|
+
smsMessage: sms,
|
|
197
|
+
callRequestMessage: callMessage,
|
|
198
|
+
eventType: NotificationSettingEventType.SEND_WHEN_USER_IS_ON_CALL_ROSTER,
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
// send an email to the next user.
|
|
203
|
+
if (((_l = previousInformation.nextUserIdOnRoster) === null || _l === void 0 ? void 0 : _l.toString()) !==
|
|
204
|
+
((_m = newInformation.nextUserIdOnRoster) === null || _m === void 0 ? void 0 : _m.toString()) ||
|
|
205
|
+
((_o = previousInformation.nextHandOffTimeAt) === null || _o === void 0 ? void 0 : _o.toString()) !==
|
|
206
|
+
((_p = newInformation.nextHandOffTimeAt) === null || _p === void 0 ? void 0 : _p.toString()) ||
|
|
207
|
+
((_q = previousInformation.nextRosterStartAt) === null || _q === void 0 ? void 0 : _q.toString()) !==
|
|
208
|
+
((_r = newInformation.nextRosterStartAt) === null || _r === void 0 ? void 0 : _r.toString())) {
|
|
209
|
+
if ((_s = newInformation.nextUserIdOnRoster) === null || _s === void 0 ? void 0 : _s.toString()) {
|
|
210
|
+
// send email to the next user.
|
|
211
|
+
const sendEmailToUserId = newInformation.nextUserIdOnRoster;
|
|
212
|
+
const userTimezone = await UserService.getTimezoneForUser(sendEmailToUserId);
|
|
213
|
+
const vars = {
|
|
214
|
+
onCallPolicyName: onCallPolicy.name || "No name provided",
|
|
215
|
+
escalationRuleName: onCallDutyPolicyEscalationRule.name || "No name provided",
|
|
216
|
+
escalationRuleOrder: ((_t = onCallDutyPolicyEscalationRule.order) === null || _t === void 0 ? void 0 : _t.toString()) || "-",
|
|
217
|
+
reason: "You are next on-call for the policy " +
|
|
218
|
+
onCallPolicy.name +
|
|
219
|
+
" because your on-call roster on schedule " +
|
|
220
|
+
onCallSchedule.name +
|
|
221
|
+
" will start when the next handoff happens.",
|
|
222
|
+
rosterStartsAt: OneUptimeDate.getDateAsFormattedHTMLInMultipleTimezones({
|
|
223
|
+
date: newInformation.nextRosterStartAt,
|
|
224
|
+
timezones: userTimezone ? [userTimezone] : [],
|
|
225
|
+
}),
|
|
226
|
+
rosterEndsAt: OneUptimeDate.getDateAsFormattedHTMLInMultipleTimezones({
|
|
227
|
+
date: newInformation.nextHandOffTimeAt,
|
|
228
|
+
timezones: userTimezone ? [userTimezone] : [],
|
|
229
|
+
}),
|
|
230
|
+
onCallPolicyViewLink: (await OnCallDutyPolicyService.getOnCallPolicyLinkInDashboard(projectId, onCallPolicy.id)).toString(),
|
|
231
|
+
};
|
|
232
|
+
const emailMessage = {
|
|
233
|
+
templateType: EmailTemplateType.UserNextOnOnCallRoster,
|
|
234
|
+
vars: vars,
|
|
235
|
+
subject: "You are next on-call for " + onCallPolicy.name,
|
|
236
|
+
};
|
|
237
|
+
const sms = {
|
|
238
|
+
message: `This is a message from OneUptime. You are next on-call for ${onCallPolicy.name} because your on-call roster on schedule ${onCallSchedule.name} will start when the next handoff happens. To unsubscribe from this notification go to User Settings in OneUptime Dashboard.`,
|
|
239
|
+
};
|
|
240
|
+
const callMessage = {
|
|
241
|
+
data: [
|
|
242
|
+
{
|
|
243
|
+
sayMessage: `This is a message from OneUptime. You are next on-call for ${onCallPolicy.name} because your on-call roster on schedule ${onCallSchedule.name} will start when the next handoff happens. To unsubscribe from this notification go to User Settings in OneUptime Dashboard. Good bye.`,
|
|
244
|
+
},
|
|
245
|
+
],
|
|
246
|
+
};
|
|
247
|
+
await UserNotificationSettingService.sendUserNotification({
|
|
248
|
+
userId: sendEmailToUserId,
|
|
249
|
+
projectId: projectId,
|
|
250
|
+
emailEnvelope: emailMessage,
|
|
251
|
+
smsMessage: sms,
|
|
252
|
+
callRequestMessage: callMessage,
|
|
253
|
+
eventType: NotificationSettingEventType.SEND_WHEN_USER_IS_NEXT_ON_CALL_ROSTER,
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
42
259
|
async refreshCurrentUserIdAndHandoffTimeInSchedule(scheduleId) {
|
|
43
|
-
|
|
260
|
+
// get previoius result.
|
|
261
|
+
const onCallSchedule = await this.findOneById({
|
|
262
|
+
id: scheduleId,
|
|
263
|
+
select: {
|
|
264
|
+
currentUserIdOnRoster: true,
|
|
265
|
+
rosterHandoffAt: true,
|
|
266
|
+
nextUserIdOnRoster: true,
|
|
267
|
+
rosterNextHandoffAt: true,
|
|
268
|
+
rosterStartAt: true,
|
|
269
|
+
rosterNextStartAt: true,
|
|
270
|
+
},
|
|
271
|
+
props: {
|
|
272
|
+
isRoot: true,
|
|
273
|
+
},
|
|
274
|
+
});
|
|
275
|
+
if (!onCallSchedule) {
|
|
276
|
+
throw new BadDataException("Schedule not found");
|
|
277
|
+
}
|
|
278
|
+
const previousInformation = {
|
|
279
|
+
currentUserIdOnRoster: onCallSchedule.currentUserIdOnRoster || null,
|
|
280
|
+
rosterHandoffAt: onCallSchedule.rosterHandoffAt || null,
|
|
281
|
+
nextUserIdOnRoster: onCallSchedule.nextUserIdOnRoster || null,
|
|
282
|
+
nextHandOffTimeAt: onCallSchedule.rosterNextHandoffAt || null,
|
|
283
|
+
rosterStartAt: onCallSchedule.rosterStartAt || null,
|
|
284
|
+
nextRosterStartAt: onCallSchedule.rosterNextStartAt || null,
|
|
285
|
+
};
|
|
286
|
+
const newInformation = await this.getCurrrentUserIdAndHandoffTimeInSchedule(scheduleId);
|
|
44
287
|
await this.updateOneById({
|
|
45
288
|
id: scheduleId,
|
|
46
289
|
data: {
|
|
47
|
-
currentUserIdOnRoster:
|
|
48
|
-
rosterHandoffAt:
|
|
49
|
-
nextUserIdOnRoster:
|
|
50
|
-
rosterNextHandoffAt:
|
|
51
|
-
rosterStartAt:
|
|
52
|
-
rosterNextStartAt:
|
|
290
|
+
currentUserIdOnRoster: newInformation.currentUserId,
|
|
291
|
+
rosterHandoffAt: newInformation.handOffTimeAt,
|
|
292
|
+
nextUserIdOnRoster: newInformation.nextUserId,
|
|
293
|
+
rosterNextHandoffAt: newInformation.nextHandOffTimeAt,
|
|
294
|
+
rosterStartAt: newInformation.rosterStartAt,
|
|
295
|
+
rosterNextStartAt: newInformation.nextRosterStartAt,
|
|
53
296
|
},
|
|
54
297
|
props: {
|
|
55
298
|
isRoot: true,
|
|
56
299
|
ignoreHooks: true,
|
|
57
300
|
},
|
|
58
301
|
});
|
|
59
|
-
|
|
302
|
+
// send notification to the users.
|
|
303
|
+
await this.sendNotificationToUserOnScheduleHandoff({
|
|
304
|
+
scheduleId: scheduleId,
|
|
305
|
+
previousInformation: previousInformation,
|
|
306
|
+
newInformation: {
|
|
307
|
+
currentUserIdOnRoster: newInformation.currentUserId,
|
|
308
|
+
rosterHandoffAt: newInformation.handOffTimeAt,
|
|
309
|
+
nextUserIdOnRoster: newInformation.nextUserId,
|
|
310
|
+
nextHandOffTimeAt: newInformation.nextHandOffTimeAt,
|
|
311
|
+
rosterStartAt: newInformation.rosterStartAt,
|
|
312
|
+
nextRosterStartAt: newInformation.nextRosterStartAt,
|
|
313
|
+
},
|
|
314
|
+
});
|
|
315
|
+
return newInformation;
|
|
60
316
|
}
|
|
61
317
|
async getCurrrentUserIdAndHandoffTimeInSchedule(scheduleId) {
|
|
62
318
|
const resultReturn = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnCallDutyPolicyScheduleService.js","sourceRoot":"","sources":["../../../../Server/Services/OnCallDutyPolicyScheduleService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OnCallDutyPolicyScheduleService.js","sourceRoot":"","sources":["../../../../Server/Services/OnCallDutyPolicyScheduleService.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,8 @@ import ScheduledMaintenanceFeedService from "./ScheduledMaintenanceFeedService";
|
|
|
28
28
|
import { ScheduledMaintenanceFeedEventType } from "../../Models/DatabaseModels/ScheduledMaintenanceFeed";
|
|
29
29
|
import logger from "../Utils/Logger";
|
|
30
30
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
31
|
+
import { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
|
|
32
|
+
import WorkspaceNotificationRuleService from "./WorkspaceNotificationRuleService";
|
|
31
33
|
export class Service extends DatabaseService {
|
|
32
34
|
constructor() {
|
|
33
35
|
super(ScheduledMaintenanceStateTimeline);
|
|
@@ -35,6 +37,37 @@ export class Service extends DatabaseService {
|
|
|
35
37
|
this.hardDeleteItemsOlderThanInDays("createdAt", 120);
|
|
36
38
|
}
|
|
37
39
|
}
|
|
40
|
+
async isLastScheduledMaintenanceState(data) {
|
|
41
|
+
var _a;
|
|
42
|
+
// find all the states for this project and sort it by order. Then, check if this is the last state.
|
|
43
|
+
const scheduledMaintenanceStates = await ScheduledMaintenanceStateService.findBy({
|
|
44
|
+
query: {
|
|
45
|
+
projectId: data.projectId,
|
|
46
|
+
},
|
|
47
|
+
limit: LIMIT_PER_PROJECT,
|
|
48
|
+
skip: 0,
|
|
49
|
+
sort: {
|
|
50
|
+
order: SortOrder.Ascending,
|
|
51
|
+
},
|
|
52
|
+
props: {
|
|
53
|
+
isRoot: true,
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
const scheduledMaintenanceState = scheduledMaintenanceStates.find((scheduledMaintenanceState) => {
|
|
57
|
+
var _a;
|
|
58
|
+
return (((_a = scheduledMaintenanceState.id) === null || _a === void 0 ? void 0 : _a.toString()) ===
|
|
59
|
+
data.scheduledMaintenanceStateId.toString());
|
|
60
|
+
}) || null;
|
|
61
|
+
if (!scheduledMaintenanceState) {
|
|
62
|
+
throw new BadDataException("ScheduledMaintenance state not found.");
|
|
63
|
+
}
|
|
64
|
+
const lastScheduledMaintenanceState = scheduledMaintenanceStates[scheduledMaintenanceStates.length - 1];
|
|
65
|
+
if (lastScheduledMaintenanceState && lastScheduledMaintenanceState.id) {
|
|
66
|
+
return (lastScheduledMaintenanceState.id.toString() ===
|
|
67
|
+
((_a = scheduledMaintenanceState.id) === null || _a === void 0 ? void 0 : _a.toString()));
|
|
68
|
+
}
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
38
71
|
async onBeforeCreate(createBy) {
|
|
39
72
|
var _a;
|
|
40
73
|
if (!createBy.data.scheduledMaintenanceId) {
|
|
@@ -306,6 +339,25 @@ export class Service extends DatabaseService {
|
|
|
306
339
|
// resolve all the monitors.
|
|
307
340
|
await this.enableActiveMonitoringForMonitors(scheduledMaintenanceEvent);
|
|
308
341
|
}
|
|
342
|
+
const isLastScheduledMaintenanceState = await this.isLastScheduledMaintenanceState({
|
|
343
|
+
projectId: createdItem.projectId,
|
|
344
|
+
scheduledMaintenanceStateId: createdItem.scheduledMaintenanceStateId,
|
|
345
|
+
});
|
|
346
|
+
if (isLastScheduledMaintenanceState) {
|
|
347
|
+
WorkspaceNotificationRuleService.archiveWorkspaceChannels({
|
|
348
|
+
projectId: createdItem.projectId,
|
|
349
|
+
notificationFor: {
|
|
350
|
+
scheduledMaintenanceId: createdItem.scheduledMaintenanceId,
|
|
351
|
+
},
|
|
352
|
+
sendMessageBeforeArchiving: {
|
|
353
|
+
_type: "WorkspacePayloadMarkdown",
|
|
354
|
+
text: `**[Scheduled Event ${scheduledMaintenanceNumber}](${(await ScheduledMaintenanceService.getScheduledMaintenanceLinkInDashboard(createdItem.projectId, createdItem.scheduledMaintenanceId)).toString()})** is complete. Archiving channel.`,
|
|
355
|
+
},
|
|
356
|
+
}).catch((error) => {
|
|
357
|
+
logger.error(`Error while archiving workspace channels:`);
|
|
358
|
+
logger.error(error);
|
|
359
|
+
});
|
|
360
|
+
}
|
|
309
361
|
return createdItem;
|
|
310
362
|
}
|
|
311
363
|
async enableActiveMonitoringForMonitors(scheduledMaintenanceEvent) {
|