@oneuptime/common 7.0.3786 → 7.0.3815
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/API/SlackAPI.ts +68 -0
- package/Server/Services/AccessTokenService.ts +21 -0
- package/Server/Services/AlertFeedService.ts +98 -0
- package/Server/Services/AlertInternalNoteService.ts +49 -8
- package/Server/Services/AlertOwnerTeamService.ts +50 -2
- package/Server/Services/AlertOwnerUserService.ts +52 -2
- package/Server/Services/AlertService.ts +236 -37
- package/Server/Services/AlertStateService.ts +24 -0
- package/Server/Services/AlertStateTimelineService.ts +30 -2
- package/Server/Services/IncidentInternalNoteService.ts +6 -6
- package/Server/Services/IncidentPublicNoteService.ts +7 -4
- package/Server/Services/IncidentStateTimelineService.ts +2 -1
- package/Server/Services/ScheduledMaintenanceFeedService.ts +103 -0
- package/Server/Services/ScheduledMaintenanceInternalNoteService.ts +50 -6
- package/Server/Services/ScheduledMaintenanceOwnerTeamService.ts +37 -0
- package/Server/Services/ScheduledMaintenanceOwnerUserService.ts +34 -0
- package/Server/Services/ScheduledMaintenancePublicNoteService.ts +49 -7
- package/Server/Services/ScheduledMaintenanceService.ts +375 -12
- package/Server/Services/ScheduledMaintenanceStateService.ts +122 -34
- package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +33 -1
- package/Server/Services/WorkspaceNotificationRuleService.ts +12 -0
- package/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.ts +38 -0
- package/Server/Utils/Workspace/MicrosoftTeams/Messages/Alert.ts +116 -0
- package/Server/Utils/Workspace/MicrosoftTeams/Messages/Incident.ts +36 -115
- package/Server/Utils/Workspace/MicrosoftTeams/Messages/ScheduledMaintenance.ts +108 -0
- package/Server/Utils/Workspace/Slack/Actions/ActionTypes.ts +20 -2
- package/Server/Utils/Workspace/Slack/Actions/Alert.ts +697 -0
- package/Server/Utils/Workspace/Slack/Actions/Auth.ts +9 -2
- package/Server/Utils/Workspace/Slack/Actions/Incident.ts +9 -3
- package/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.ts +956 -0
- package/Server/Utils/Workspace/Slack/Messages/Alert.ts +116 -0
- package/Server/Utils/Workspace/Slack/Messages/ScheduledMaintenance.ts +108 -0
- package/Server/Utils/Workspace/Slack/Slack.ts +48 -2
- package/Server/Utils/Workspace/Slack/app-manifest.json +3 -3
- package/Server/Utils/Workspace/WorkspaceBase.ts +14 -0
- package/Server/Utils/Workspace/WorkspaceMessages/Alert.ts +69 -0
- package/Server/Utils/Workspace/WorkspaceMessages/ScheduledMaintenance.ts +73 -0
- package/Types/Date.ts +5 -0
- package/Types/Workspace/WorkspaceMessagePayload.ts +9 -0
- package/build/dist/Server/API/SlackAPI.js +54 -0
- package/build/dist/Server/API/SlackAPI.js.map +1 -1
- package/build/dist/Server/Services/AccessTokenService.js +11 -0
- package/build/dist/Server/Services/AccessTokenService.js.map +1 -1
- package/build/dist/Server/Services/AlertFeedService.js +60 -0
- package/build/dist/Server/Services/AlertFeedService.js.map +1 -1
- package/build/dist/Server/Services/AlertInternalNoteService.js +39 -8
- package/build/dist/Server/Services/AlertInternalNoteService.js.map +1 -1
- package/build/dist/Server/Services/AlertOwnerTeamService.js +40 -2
- package/build/dist/Server/Services/AlertOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/AlertOwnerUserService.js +41 -3
- package/build/dist/Server/Services/AlertOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/AlertService.js +192 -35
- package/build/dist/Server/Services/AlertService.js.map +1 -1
- package/build/dist/Server/Services/AlertStateService.js +13 -0
- package/build/dist/Server/Services/AlertStateService.js.map +1 -1
- package/build/dist/Server/Services/AlertStateTimelineService.js +26 -2
- package/build/dist/Server/Services/AlertStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentInternalNoteService.js +6 -6
- package/build/dist/Server/Services/IncidentInternalNoteService.js.map +1 -1
- package/build/dist/Server/Services/IncidentPublicNoteService.js +5 -4
- package/build/dist/Server/Services/IncidentPublicNoteService.js.map +1 -1
- package/build/dist/Server/Services/IncidentStateTimelineService.js +1 -1
- package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceFeedService.js +60 -0
- package/build/dist/Server/Services/ScheduledMaintenanceFeedService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceInternalNoteService.js +36 -6
- package/build/dist/Server/Services/ScheduledMaintenanceInternalNoteService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceOwnerTeamService.js +24 -0
- package/build/dist/Server/Services/ScheduledMaintenanceOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceOwnerUserService.js +22 -0
- package/build/dist/Server/Services/ScheduledMaintenanceOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenancePublicNoteService.js +36 -7
- package/build/dist/Server/Services/ScheduledMaintenancePublicNoteService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceService.js +275 -13
- package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceStateService.js +52 -4
- package/build/dist/Server/Services/ScheduledMaintenanceStateService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +28 -1
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js +10 -0
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.js +37 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Messages/Alert.js +82 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Messages/Alert.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Messages/Incident.js +33 -99
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Messages/Incident.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Messages/ScheduledMaintenance.js +74 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Messages/ScheduledMaintenance.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/Slack/Actions/ActionTypes.js +20 -2
- package/build/dist/Server/Utils/Workspace/Slack/Actions/ActionTypes.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Actions/Alert.js +425 -0
- package/build/dist/Server/Utils/Workspace/Slack/Actions/Alert.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/Slack/Actions/Auth.js +2 -0
- package/build/dist/Server/Utils/Workspace/Slack/Actions/Auth.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Actions/Incident.js +5 -2
- package/build/dist/Server/Utils/Workspace/Slack/Actions/Incident.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.js +599 -0
- package/build/dist/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/Slack/Messages/Alert.js +82 -0
- package/build/dist/Server/Utils/Workspace/Slack/Messages/Alert.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/Slack/Messages/ScheduledMaintenance.js +74 -0
- package/build/dist/Server/Utils/Workspace/Slack/Messages/ScheduledMaintenance.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js +34 -0
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/app-manifest.json +3 -3
- package/build/dist/Server/Utils/Workspace/WorkspaceBase.js +8 -0
- package/build/dist/Server/Utils/Workspace/WorkspaceBase.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/WorkspaceMessages/Alert.js +48 -0
- package/build/dist/Server/Utils/Workspace/WorkspaceMessages/Alert.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/WorkspaceMessages/ScheduledMaintenance.js +47 -0
- package/build/dist/Server/Utils/Workspace/WorkspaceMessages/ScheduledMaintenance.js.map +1 -0
- package/build/dist/Types/Date.js +4 -0
- package/build/dist/Types/Date.js.map +1 -1
- package/package.json +2 -2
|
@@ -142,6 +142,17 @@ export class AccessTokenService extends BaseService {
|
|
|
142
142
|
await GlobalCache.setJSON(PermissionNamespace.ProjectPermission, userId.toString() + projectId.toString(), permission);
|
|
143
143
|
return permission;
|
|
144
144
|
}
|
|
145
|
+
async getDatabaseCommonInteractionPropsByUserAndProject(data) {
|
|
146
|
+
const { userId, projectId } = data;
|
|
147
|
+
return {
|
|
148
|
+
userId: userId,
|
|
149
|
+
userGlobalAccessPermission: (await this.getUserGlobalAccessPermission(userId)) || undefined,
|
|
150
|
+
userTenantAccessPermission: {
|
|
151
|
+
[projectId.toString()]: (await this.getUserTenantAccessPermission(userId, projectId)),
|
|
152
|
+
},
|
|
153
|
+
tenantId: projectId,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
145
156
|
async getUserTenantAccessPermission(userId, projectId) {
|
|
146
157
|
const json = await UserPermissionUtil.getUserTenantAccessPermissionFromCache(userId, projectId);
|
|
147
158
|
if (!json) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessTokenService.js","sourceRoot":"","sources":["../../../../Server/Services/AccessTokenService.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,+BAA+B,CAAC;AACxD,OAAO,WAAW,MAAM,+BAA+B,CAAC;AACxD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,SAAS,MAAM,+BAA+B,CAAC;AAEtD,OAAO,UAIN,MAAM,wBAAwB,CAAC;AAIhC,OAAO,kBAAkB,MAAM,wCAAwC,CAAC;AACxE,OAAO,mBAAmB,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"AccessTokenService.js","sourceRoot":"","sources":["../../../../Server/Services/AccessTokenService.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,12 @@ import OneUptimeDate from "../../Types/Date";
|
|
|
3
3
|
import BadDataException from "../../Types/Exception/BadDataException";
|
|
4
4
|
import { IsBillingEnabled } from "../EnvironmentConfig";
|
|
5
5
|
import logger from "../Utils/Logger";
|
|
6
|
+
import AlertService from "./AlertService";
|
|
6
7
|
import DatabaseService from "./DatabaseService";
|
|
7
8
|
import Model from "Common/Models/DatabaseModels/AlertFeed";
|
|
9
|
+
import WorkspaceNotificationRuleService from "./WorkspaceNotificationRuleService";
|
|
10
|
+
import NotificationRuleEventType from "../../Types/Workspace/NotificationRules/EventType";
|
|
11
|
+
import WorkspaceUtil from "../Utils/Workspace/Workspace";
|
|
8
12
|
export class Service extends DatabaseService {
|
|
9
13
|
constructor() {
|
|
10
14
|
super(Model);
|
|
@@ -13,6 +17,7 @@ export class Service extends DatabaseService {
|
|
|
13
17
|
}
|
|
14
18
|
}
|
|
15
19
|
async createAlertFeedItem(data) {
|
|
20
|
+
var _a, _b;
|
|
16
21
|
try {
|
|
17
22
|
if (!data.alertId) {
|
|
18
23
|
throw new BadDataException("Alert ID is required");
|
|
@@ -50,6 +55,61 @@ export class Service extends DatabaseService {
|
|
|
50
55
|
isRoot: true,
|
|
51
56
|
},
|
|
52
57
|
});
|
|
58
|
+
try {
|
|
59
|
+
// send notification to slack and teams
|
|
60
|
+
if ((_a = data.workspaceNotification) === null || _a === void 0 ? void 0 : _a.sendWorkspaceNotification) {
|
|
61
|
+
let messageBlocksByWorkspaceTypes = [];
|
|
62
|
+
// use markdown to create blocks
|
|
63
|
+
messageBlocksByWorkspaceTypes =
|
|
64
|
+
await WorkspaceUtil.getMessageBlocksByMarkdown({
|
|
65
|
+
userId: data.workspaceNotification.notifyUserId,
|
|
66
|
+
markdown: data.feedInfoInMarkdown,
|
|
67
|
+
projectId: data.projectId,
|
|
68
|
+
});
|
|
69
|
+
if (data.workspaceNotification.appendMessageBlocks) {
|
|
70
|
+
for (const messageBlocksByWorkspaceType of data
|
|
71
|
+
.workspaceNotification.appendMessageBlocks) {
|
|
72
|
+
const workspaceType = messageBlocksByWorkspaceType.workspaceType;
|
|
73
|
+
(_b = messageBlocksByWorkspaceTypes
|
|
74
|
+
.find((messageBlocksByWorkspaceType) => {
|
|
75
|
+
return (messageBlocksByWorkspaceType.workspaceType ===
|
|
76
|
+
workspaceType);
|
|
77
|
+
})) === null || _b === void 0 ? void 0 : _b.messageBlocks.push(...messageBlocksByWorkspaceType.messageBlocks);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
const workspaceNotificationPaylaods = [];
|
|
81
|
+
for (const messageBlocksByWorkspaceType of messageBlocksByWorkspaceTypes) {
|
|
82
|
+
const existingChannels = await WorkspaceNotificationRuleService.getExistingChannelNamesBasedOnEventType({
|
|
83
|
+
projectId: data.projectId,
|
|
84
|
+
notificationRuleEventType: NotificationRuleEventType.Alert,
|
|
85
|
+
workspaceType: messageBlocksByWorkspaceType.workspaceType,
|
|
86
|
+
});
|
|
87
|
+
const alertChannels = await AlertService.getWorkspaceChannelForAlert({
|
|
88
|
+
alertId: data.alertId,
|
|
89
|
+
workspaceType: messageBlocksByWorkspaceType.workspaceType,
|
|
90
|
+
});
|
|
91
|
+
const workspaceMessagePayload = {
|
|
92
|
+
_type: "WorkspaceMessagePayload",
|
|
93
|
+
workspaceType: messageBlocksByWorkspaceType.workspaceType,
|
|
94
|
+
messageBlocks: messageBlocksByWorkspaceType.messageBlocks,
|
|
95
|
+
channelNames: existingChannels,
|
|
96
|
+
channelIds: alertChannels.map((channel) => {
|
|
97
|
+
return channel.id;
|
|
98
|
+
}) || [],
|
|
99
|
+
};
|
|
100
|
+
workspaceNotificationPaylaods.push(workspaceMessagePayload);
|
|
101
|
+
}
|
|
102
|
+
await WorkspaceUtil.postMessageToAllWorkspaceChannelsAsBot({
|
|
103
|
+
projectId: data.projectId,
|
|
104
|
+
messagePayloadsByWorkspace: workspaceNotificationPaylaods,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
catch (e) {
|
|
109
|
+
logger.error("Error in sending notification to slack and teams");
|
|
110
|
+
logger.error(e);
|
|
111
|
+
// we dont throw this error as it is not a critical error
|
|
112
|
+
}
|
|
53
113
|
}
|
|
54
114
|
catch (error) {
|
|
55
115
|
logger.error("AlertFeedService.createAlertFeedItem");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlertFeedService.js","sourceRoot":"","sources":["../../../../Server/Services/AlertFeedService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,gBAAgB,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"AlertFeedService.js","sourceRoot":"","sources":["../../../../Server/Services/AlertFeedService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElD,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,gBAAgB,MAAM,wCAAwC,CAAC;AAGtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAEN,MAAM,wCAAwC,CAAC;AAChD,OAAO,gCAEN,MAAM,oCAAoC,CAAC;AAC5C,OAAO,yBAAyB,MAAM,mDAAmD,CAAC;AAC1F,OAAO,aAAa,MAAM,8BAA8B,CAAC;AAGzD,MAAM,OAAO,OAAQ,SAAQ,eAAsB;IACjD;QACE,KAAK,CAAC,KAAK,CAAC,CAAC;QAEb,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,CAAC,8BAA8B,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,IAgBhC;;QACC,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,IAAI,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;YACrD,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC7B,MAAM,IAAI,gBAAgB,CAAC,6BAA6B,CAAC,CAAC;YAC5D,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC7B,MAAM,IAAI,gBAAgB,CAAC,6BAA6B,CAAC,CAAC;YAC5D,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,MAAM,IAAI,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;YACvD,CAAC;YAED,MAAM,SAAS,GAAU,IAAI,KAAK,EAAE,CAAC;YAErC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;YAC9B,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACjC,CAAC;YAED,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YAE3C,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YACjC,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACvD,SAAS,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACvD,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAErC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,SAAS,CAAC,QAAQ,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;YACtD,CAAC;YAED,IAAI,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBACnC,SAAS,CAAC,yBAAyB,GAAG,IAAI,CAAC,yBAAyB,CAAC;YACvE,CAAC;YAED,MAAM,IAAI,CAAC,MAAM,CAAC;gBAChB,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE;oBACL,MAAM,EAAE,IAAI;iBACb;aACF,CAAC,CAAC;YAEH,IAAI,CAAC;gBACH,uCAAuC;gBACvC,IAAI,MAAA,IAAI,CAAC,qBAAqB,0CAAE,yBAAyB,EAAE,CAAC;oBAC1D,IAAI,6BAA6B,GAC/B,EAAE,CAAC;oBAEL,gCAAgC;oBAChC,6BAA6B;wBAC3B,MAAM,aAAa,CAAC,0BAA0B,CAAC;4BAC7C,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC,YAAY;4BAC/C,QAAQ,EAAE,IAAI,CAAC,kBAAkB;4BACjC,SAAS,EAAE,IAAI,CAAC,SAAS;yBAC1B,CAAC,CAAC;oBAEL,IAAI,IAAI,CAAC,qBAAqB,CAAC,mBAAmB,EAAE,CAAC;wBACnD,KAAK,MAAM,4BAA4B,IAAI,IAAI;6BAC5C,qBAAqB,CAAC,mBAAmB,EAAE,CAAC;4BAC7C,MAAM,aAAa,GACjB,4BAA4B,CAAC,aAAa,CAAC;4BAE7C,MAAA,6BAA6B;iCAC1B,IAAI,CACH,CACE,4BAA0D,EAC1D,EAAE;gCACF,OAAO,CACL,4BAA4B,CAAC,aAAa;oCAC1C,aAAa,CACd,CAAC;4BACJ,CAAC,CACF,0CACC,aAAa,CAAC,IAAI,CAClB,GAAG,4BAA4B,CAAC,aAAa,CAC9C,CAAC;wBACN,CAAC;oBACH,CAAC;oBAED,MAAM,6BAA6B,GACjC,EAAE,CAAC;oBAEL,KAAK,MAAM,4BAA4B,IAAI,6BAA6B,EAAE,CAAC;wBACzE,MAAM,gBAAgB,GACpB,MAAM,gCAAgC,CAAC,uCAAuC,CAC5E;4BACE,SAAS,EAAE,IAAI,CAAC,SAAS;4BACzB,yBAAyB,EAAE,yBAAyB,CAAC,KAAK;4BAC1D,aAAa,EAAE,4BAA4B,CAAC,aAAa;yBAC1D,CACF,CAAC;wBAEJ,MAAM,aAAa,GACjB,MAAM,YAAY,CAAC,2BAA2B,CAAC;4BAC7C,OAAO,EAAE,IAAI,CAAC,OAAO;4BACrB,aAAa,EAAE,4BAA4B,CAAC,aAAa;yBAC1D,CAAC,CAAC;wBAEL,MAAM,uBAAuB,GAA4B;4BACvD,KAAK,EAAE,yBAAyB;4BAChC,aAAa,EAAE,4BAA4B,CAAC,aAAa;4BACzD,aAAa,EAAE,4BAA4B,CAAC,aAAa;4BACzD,YAAY,EAAE,gBAAgB;4BAC9B,UAAU,EACR,aAAa,CAAC,GAAG,CAAC,CAAC,OAAyB,EAAE,EAAE;gCAC9C,OAAO,OAAO,CAAC,EAAE,CAAC;4BACpB,CAAC,CAAC,IAAI,EAAE;yBACX,CAAC;wBAEF,6BAA6B,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;oBAC9D,CAAC;oBAED,MAAM,aAAa,CAAC,sCAAsC,CAAC;wBACzD,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,0BAA0B,EAAE,6BAA6B;qBAC1D,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;gBACjE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAEhB,yDAAyD;YAC3D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YACrD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpB,4EAA4E;QAC9E,CAAC;IACH,CAAC;CACF;AAED,eAAe,IAAI,OAAO,EAAE,CAAC"}
|
|
@@ -4,23 +4,45 @@ import AlertFeedService from "./AlertFeedService";
|
|
|
4
4
|
import { AlertFeedEventType } from "../../Models/DatabaseModels/AlertFeed";
|
|
5
5
|
import { Blue500 } from "../../Types/BrandColors";
|
|
6
6
|
import { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
|
|
7
|
+
import AlertService from "./AlertService";
|
|
7
8
|
export class Service extends DatabaseService {
|
|
8
9
|
constructor() {
|
|
9
10
|
super(Model);
|
|
10
11
|
}
|
|
12
|
+
async addNote(data) {
|
|
13
|
+
const internalNote = new Model();
|
|
14
|
+
internalNote.createdByUserId = data.userId;
|
|
15
|
+
internalNote.alertId = data.alertId;
|
|
16
|
+
internalNote.projectId = data.projectId;
|
|
17
|
+
internalNote.note = data.note;
|
|
18
|
+
return this.create({
|
|
19
|
+
data: internalNote,
|
|
20
|
+
props: {
|
|
21
|
+
isRoot: true,
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
}
|
|
11
25
|
async onCreateSuccess(_onCreate, createdItem) {
|
|
12
26
|
var _a;
|
|
13
27
|
const userId = createdItem.createdByUserId || ((_a = createdItem.createdByUser) === null || _a === void 0 ? void 0 : _a.id);
|
|
28
|
+
const alertId = createdItem.alertId;
|
|
29
|
+
const alertNumber = await AlertService.getAlertNumber({
|
|
30
|
+
alertId: alertId,
|
|
31
|
+
});
|
|
14
32
|
await AlertFeedService.createAlertFeedItem({
|
|
15
33
|
alertId: createdItem.alertId,
|
|
16
34
|
projectId: createdItem.projectId,
|
|
17
35
|
alertFeedEventType: AlertFeedEventType.PrivateNote,
|
|
18
36
|
displayColor: Blue500,
|
|
19
37
|
userId: userId || undefined,
|
|
20
|
-
feedInfoInMarkdown:
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
38
|
+
feedInfoInMarkdown: `📄 posted **private note** for this [Alert ${alertNumber}](${(await AlertService.getAlertLinkInDashboard(createdItem.projectId, alertId)).toString()}):
|
|
39
|
+
|
|
40
|
+
${createdItem.note}
|
|
41
|
+
`,
|
|
42
|
+
workspaceNotification: {
|
|
43
|
+
sendWorkspaceNotification: true,
|
|
44
|
+
notifyUserId: userId || undefined,
|
|
45
|
+
},
|
|
24
46
|
});
|
|
25
47
|
return createdItem;
|
|
26
48
|
}
|
|
@@ -38,6 +60,10 @@ export class Service extends DatabaseService {
|
|
|
38
60
|
projectId: true,
|
|
39
61
|
note: true,
|
|
40
62
|
createdByUserId: true,
|
|
63
|
+
alert: {
|
|
64
|
+
projectId: true,
|
|
65
|
+
alertNumber: true,
|
|
66
|
+
},
|
|
41
67
|
createdByUser: {
|
|
42
68
|
_id: true,
|
|
43
69
|
},
|
|
@@ -45,16 +71,21 @@ export class Service extends DatabaseService {
|
|
|
45
71
|
});
|
|
46
72
|
const userId = onUpdate.updateBy.props.userId;
|
|
47
73
|
for (const updatedItem of updatedItems) {
|
|
74
|
+
const alert = updatedItem.alert;
|
|
48
75
|
await AlertFeedService.createAlertFeedItem({
|
|
49
76
|
alertId: updatedItem.alertId,
|
|
50
77
|
projectId: updatedItem.projectId,
|
|
51
78
|
alertFeedEventType: AlertFeedEventType.PrivateNote,
|
|
52
79
|
displayColor: Blue500,
|
|
53
80
|
userId: userId || undefined,
|
|
54
|
-
feedInfoInMarkdown:
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
81
|
+
feedInfoInMarkdown: `📄 updated **Private Note** for this [Alert ${alert.alertNumber}](${(await AlertService.getAlertLinkInDashboard(alert.projectId, alert.id)).toString()})
|
|
82
|
+
|
|
83
|
+
${updatedItem.note}
|
|
84
|
+
`,
|
|
85
|
+
workspaceNotification: {
|
|
86
|
+
sendWorkspaceNotification: true,
|
|
87
|
+
notifyUserId: userId || undefined,
|
|
88
|
+
},
|
|
58
89
|
});
|
|
59
90
|
}
|
|
60
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlertInternalNoteService.js","sourceRoot":"","sources":["../../../../Server/Services/AlertInternalNoteService.ts"],"names":[],"mappings":"AACA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,MAAM,gDAAgD,CAAC;AAEnE,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,MAAM,OAAO,OAAQ,SAAQ,eAAsB;IACjD;QACE,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAEe,KAAK,CAAC,eAAe,CACnC,SAA0B,EAC1B,WAAkB;;QAElB,MAAM,MAAM,GACV,WAAW,CAAC,eAAe,KAAI,MAAA,WAAW,CAAC,aAAa,0CAAE,EAAE,CAAA,CAAC;QAE/D,MAAM,gBAAgB,CAAC,mBAAmB,CAAC;YACzC,OAAO,EAAE,WAAW,CAAC,OAAQ;YAC7B,SAAS,EAAE,WAAW,CAAC,SAAU;YACjC,kBAAkB,EAAE,kBAAkB,CAAC,WAAW;YAClD,YAAY,EAAE,OAAO;YACrB,MAAM,EAAE,MAAM,IAAI,SAAS;YAE3B,kBAAkB,EAAE;;
|
|
1
|
+
{"version":3,"file":"AlertInternalNoteService.js","sourceRoot":"","sources":["../../../../Server/Services/AlertInternalNoteService.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,10 @@ import TeamService from "./TeamService";
|
|
|
4
4
|
import AlertFeedService from "./AlertFeedService";
|
|
5
5
|
import { AlertFeedEventType } from "../../Models/DatabaseModels/AlertFeed";
|
|
6
6
|
import { Gray500, Red500 } from "../../Types/BrandColors";
|
|
7
|
+
import AlertService from "./AlertService";
|
|
8
|
+
import WorkspaceNotificationRuleService from "./WorkspaceNotificationRuleService";
|
|
9
|
+
import NotificationRuleEventType from "../../Types/Workspace/NotificationRules/EventType";
|
|
10
|
+
import logger from "../Utils/Logger";
|
|
7
11
|
export class Service extends DatabaseService {
|
|
8
12
|
constructor() {
|
|
9
13
|
super(Model);
|
|
@@ -48,13 +52,20 @@ export class Service extends DatabaseService {
|
|
|
48
52
|
},
|
|
49
53
|
});
|
|
50
54
|
if (team && team.name) {
|
|
55
|
+
const alertNumber = await AlertService.getAlertNumber({
|
|
56
|
+
alertId: alertId,
|
|
57
|
+
});
|
|
51
58
|
await AlertFeedService.createAlertFeedItem({
|
|
52
59
|
alertId: alertId,
|
|
53
60
|
projectId: projectId,
|
|
54
61
|
alertFeedEventType: AlertFeedEventType.OwnerTeamRemoved,
|
|
55
62
|
displayColor: Red500,
|
|
56
|
-
feedInfoInMarkdown:
|
|
63
|
+
feedInfoInMarkdown: `👨🏻👩🏻👦🏻 Removed team **${team.name}** from the [Alert ${alertNumber}](${(await AlertService.getAlertLinkInDashboard(projectId, alertId)).toString()}) as the owner.`,
|
|
57
64
|
userId: deleteByUserId || undefined,
|
|
65
|
+
workspaceNotification: {
|
|
66
|
+
sendWorkspaceNotification: true,
|
|
67
|
+
notifyUserId: deleteByUserId || undefined,
|
|
68
|
+
},
|
|
58
69
|
});
|
|
59
70
|
}
|
|
60
71
|
}
|
|
@@ -78,16 +89,43 @@ export class Service extends DatabaseService {
|
|
|
78
89
|
},
|
|
79
90
|
});
|
|
80
91
|
if (team && team.name) {
|
|
92
|
+
const alertNumber = await AlertService.getAlertNumber({
|
|
93
|
+
alertId: alertId,
|
|
94
|
+
});
|
|
81
95
|
await AlertFeedService.createAlertFeedItem({
|
|
82
96
|
alertId: alertId,
|
|
83
97
|
projectId: projectId,
|
|
84
98
|
alertFeedEventType: AlertFeedEventType.OwnerTeamAdded,
|
|
85
99
|
displayColor: Gray500,
|
|
86
|
-
feedInfoInMarkdown:
|
|
100
|
+
feedInfoInMarkdown: `👨🏻👩🏻👦🏻 Added team **${team.name}** to the [Alert ${alertNumber}](${(await AlertService.getAlertLinkInDashboard(projectId, alertId)).toString()}) as the owner.`,
|
|
87
101
|
userId: createdByUserId || undefined,
|
|
102
|
+
workspaceNotification: {
|
|
103
|
+
sendWorkspaceNotification: true,
|
|
104
|
+
notifyUserId: createdByUserId || undefined,
|
|
105
|
+
},
|
|
88
106
|
});
|
|
89
107
|
}
|
|
90
108
|
}
|
|
109
|
+
// get notification rule where inviteOwners is true.
|
|
110
|
+
const notificationRules = await WorkspaceNotificationRuleService.getNotificationRulesWhereInviteOwnersIsTrue({
|
|
111
|
+
projectId: projectId,
|
|
112
|
+
notificationFor: {
|
|
113
|
+
alertId: alertId,
|
|
114
|
+
},
|
|
115
|
+
notificationRuleEventType: NotificationRuleEventType.Alert,
|
|
116
|
+
});
|
|
117
|
+
logger.debug(`Notification Rules for Alert Owner Teams`);
|
|
118
|
+
logger.debug(notificationRules);
|
|
119
|
+
WorkspaceNotificationRuleService.inviteTeamsBasedOnRulesAndWorkspaceChannels({
|
|
120
|
+
notificationRules: notificationRules,
|
|
121
|
+
projectId: projectId,
|
|
122
|
+
workspaceChannels: await AlertService.getWorkspaceChannelForAlert({
|
|
123
|
+
alertId: alertId,
|
|
124
|
+
}),
|
|
125
|
+
teamIds: [teamId],
|
|
126
|
+
}).catch((error) => {
|
|
127
|
+
logger.error(error);
|
|
128
|
+
});
|
|
91
129
|
return createdItem;
|
|
92
130
|
}
|
|
93
131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlertOwnerTeamService.js","sourceRoot":"","sources":["../../../../Server/Services/AlertOwnerTeamService.ts"],"names":[],"mappings":"AAIA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,MAAM,6CAA6C,CAAC;AAChE,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"AlertOwnerTeamService.js","sourceRoot":"","sources":["../../../../Server/Services/AlertOwnerTeamService.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,10 @@ import UserService from "./UserService";
|
|
|
4
4
|
import AlertFeedService from "./AlertFeedService";
|
|
5
5
|
import { AlertFeedEventType } from "../../Models/DatabaseModels/AlertFeed";
|
|
6
6
|
import { Gray500, Red500 } from "../../Types/BrandColors";
|
|
7
|
+
import AlertService from "./AlertService";
|
|
8
|
+
import WorkspaceNotificationRuleService from "./WorkspaceNotificationRuleService";
|
|
9
|
+
import NotificationRuleEventType from "../../Types/Workspace/NotificationRules/EventType";
|
|
10
|
+
import logger from "../Utils/Logger";
|
|
7
11
|
export class Service extends DatabaseService {
|
|
8
12
|
constructor() {
|
|
9
13
|
super(Model);
|
|
@@ -49,13 +53,20 @@ export class Service extends DatabaseService {
|
|
|
49
53
|
},
|
|
50
54
|
});
|
|
51
55
|
if (user && user.name) {
|
|
56
|
+
const alertNumber = await AlertService.getAlertNumber({
|
|
57
|
+
alertId: alertId,
|
|
58
|
+
});
|
|
52
59
|
await AlertFeedService.createAlertFeedItem({
|
|
53
60
|
alertId: alertId,
|
|
54
61
|
projectId: projectId,
|
|
55
62
|
alertFeedEventType: AlertFeedEventType.OwnerUserRemoved,
|
|
56
63
|
displayColor: Red500,
|
|
57
|
-
feedInfoInMarkdown:
|
|
64
|
+
feedInfoInMarkdown: `👨🏻💻 Removed **${user.name.toString()}** (${(_b = user.email) === null || _b === void 0 ? void 0 : _b.toString()}) from the [Alert ${alertNumber}](${(await AlertService.getAlertLinkInDashboard(projectId, alertId)).toString()}) as the owner.`,
|
|
58
65
|
userId: deleteByUserId || undefined,
|
|
66
|
+
workspaceNotification: {
|
|
67
|
+
sendWorkspaceNotification: true,
|
|
68
|
+
notifyUserId: userId || undefined,
|
|
69
|
+
},
|
|
59
70
|
});
|
|
60
71
|
}
|
|
61
72
|
}
|
|
@@ -64,7 +75,6 @@ export class Service extends DatabaseService {
|
|
|
64
75
|
}
|
|
65
76
|
async onCreateSuccess(onCreate, createdItem) {
|
|
66
77
|
// add alert feed.
|
|
67
|
-
var _a;
|
|
68
78
|
const alertId = createdItem.alertId;
|
|
69
79
|
const projectId = createdItem.projectId;
|
|
70
80
|
const userId = createdItem.userId;
|
|
@@ -81,16 +91,44 @@ export class Service extends DatabaseService {
|
|
|
81
91
|
},
|
|
82
92
|
});
|
|
83
93
|
if (user && user.name) {
|
|
94
|
+
const alertNumber = await AlertService.getAlertNumber({
|
|
95
|
+
alertId: alertId,
|
|
96
|
+
});
|
|
84
97
|
await AlertFeedService.createAlertFeedItem({
|
|
85
98
|
alertId: alertId,
|
|
86
99
|
projectId: projectId,
|
|
87
100
|
alertFeedEventType: AlertFeedEventType.OwnerUserAdded,
|
|
88
101
|
displayColor: Gray500,
|
|
89
|
-
feedInfoInMarkdown:
|
|
102
|
+
feedInfoInMarkdown: `👨🏻💻 Added **${await UserService.getUserMarkdownString({
|
|
103
|
+
userId: userId,
|
|
104
|
+
projectId: projectId,
|
|
105
|
+
})}** to the [Alert ${alertNumber}](${(await AlertService.getAlertLinkInDashboard(projectId, alertId)).toString()}) as the owner.`,
|
|
90
106
|
userId: createdByUserId || undefined,
|
|
107
|
+
workspaceNotification: {
|
|
108
|
+
sendWorkspaceNotification: true,
|
|
109
|
+
notifyUserId: userId || undefined,
|
|
110
|
+
},
|
|
91
111
|
});
|
|
92
112
|
}
|
|
93
113
|
}
|
|
114
|
+
// get notification rule where inviteOwners is true.
|
|
115
|
+
const notificationRules = await WorkspaceNotificationRuleService.getNotificationRulesWhereInviteOwnersIsTrue({
|
|
116
|
+
projectId: projectId,
|
|
117
|
+
notificationFor: {
|
|
118
|
+
alertId: alertId,
|
|
119
|
+
},
|
|
120
|
+
notificationRuleEventType: NotificationRuleEventType.Alert,
|
|
121
|
+
});
|
|
122
|
+
WorkspaceNotificationRuleService.inviteUsersBasedOnRulesAndWorkspaceChannels({
|
|
123
|
+
notificationRules: notificationRules,
|
|
124
|
+
projectId: projectId,
|
|
125
|
+
workspaceChannels: await AlertService.getWorkspaceChannelForAlert({
|
|
126
|
+
alertId: alertId,
|
|
127
|
+
}),
|
|
128
|
+
userIds: [userId],
|
|
129
|
+
}).catch((error) => {
|
|
130
|
+
logger.error(error);
|
|
131
|
+
});
|
|
94
132
|
return createdItem;
|
|
95
133
|
}
|
|
96
134
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlertOwnerUserService.js","sourceRoot":"","sources":["../../../../Server/Services/AlertOwnerUserService.ts"],"names":[],"mappings":"AAIA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,MAAM,6CAA6C,CAAC;AAChE,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"AlertOwnerUserService.js","sourceRoot":"","sources":["../../../../Server/Services/AlertOwnerUserService.ts"],"names":[],"mappings":"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"}
|