@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
|
@@ -6,12 +6,34 @@ import ScheduledMaintenanceFeedService from "./ScheduledMaintenanceFeedService";
|
|
|
6
6
|
import { ScheduledMaintenanceFeedEventType } from "../../Models/DatabaseModels/ScheduledMaintenanceFeed";
|
|
7
7
|
import { Blue500 } from "../../Types/BrandColors";
|
|
8
8
|
import { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
|
|
9
|
+
import ScheduledMaintenance from "../../Models/DatabaseModels/ScheduledMaintenance";
|
|
10
|
+
import ScheduledMaintenanceService from "./ScheduledMaintenanceService";
|
|
9
11
|
|
|
10
12
|
export class Service extends DatabaseService<Model> {
|
|
11
13
|
public constructor() {
|
|
12
14
|
super(Model);
|
|
13
15
|
}
|
|
14
16
|
|
|
17
|
+
public async addNote(data: {
|
|
18
|
+
userId: ObjectID;
|
|
19
|
+
scheduledMaintenanceId: ObjectID;
|
|
20
|
+
projectId: ObjectID;
|
|
21
|
+
note: string;
|
|
22
|
+
}): Promise<Model> {
|
|
23
|
+
const internalNote: Model = new Model();
|
|
24
|
+
internalNote.createdByUserId = data.userId;
|
|
25
|
+
internalNote.scheduledMaintenanceId = data.scheduledMaintenanceId;
|
|
26
|
+
internalNote.projectId = data.projectId;
|
|
27
|
+
internalNote.note = data.note;
|
|
28
|
+
|
|
29
|
+
return this.create({
|
|
30
|
+
data: internalNote,
|
|
31
|
+
props: {
|
|
32
|
+
isRoot: true,
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
|
|
15
37
|
public override async onCreateSuccess(
|
|
16
38
|
_onCreate: OnCreate<Model>,
|
|
17
39
|
createdItem: Model,
|
|
@@ -19,6 +41,14 @@ export class Service extends DatabaseService<Model> {
|
|
|
19
41
|
const userId: ObjectID | null | undefined =
|
|
20
42
|
createdItem.createdByUserId || createdItem.createdByUser?.id;
|
|
21
43
|
|
|
44
|
+
const scheduledMaintenanceId: ObjectID =
|
|
45
|
+
createdItem.scheduledMaintenanceId!;
|
|
46
|
+
|
|
47
|
+
const scheduledMaintenanceNumber: number | null =
|
|
48
|
+
await ScheduledMaintenanceService.getScheduledMaintenanceNumber({
|
|
49
|
+
scheduledMaintenanceId: scheduledMaintenanceId,
|
|
50
|
+
});
|
|
51
|
+
|
|
22
52
|
await ScheduledMaintenanceFeedService.createScheduledMaintenanceFeedItem({
|
|
23
53
|
scheduledMaintenanceId: createdItem.scheduledMaintenanceId!,
|
|
24
54
|
projectId: createdItem.projectId!,
|
|
@@ -27,10 +57,14 @@ export class Service extends DatabaseService<Model> {
|
|
|
27
57
|
displayColor: Blue500,
|
|
28
58
|
userId: userId || undefined,
|
|
29
59
|
|
|
30
|
-
feedInfoInMarkdown:
|
|
31
|
-
|
|
60
|
+
feedInfoInMarkdown: `📄 posted **private note** for this [Scheduled Maintenance ${scheduledMaintenanceNumber}](${(await ScheduledMaintenanceService.getScheduledMaintenanceLinkInDashboard(createdItem.projectId!, scheduledMaintenanceId)).toString()}):
|
|
61
|
+
|
|
32
62
|
${createdItem.note}
|
|
33
|
-
|
|
63
|
+
`,
|
|
64
|
+
workspaceNotification: {
|
|
65
|
+
sendWorkspaceNotification: true,
|
|
66
|
+
notifyUserId: userId || undefined,
|
|
67
|
+
},
|
|
34
68
|
});
|
|
35
69
|
|
|
36
70
|
return createdItem;
|
|
@@ -56,6 +90,9 @@ ${createdItem.note}
|
|
|
56
90
|
createdByUser: {
|
|
57
91
|
_id: true,
|
|
58
92
|
},
|
|
93
|
+
scheduledMaintenance: {
|
|
94
|
+
scheduledMaintenanceNumber: true,
|
|
95
|
+
},
|
|
59
96
|
},
|
|
60
97
|
});
|
|
61
98
|
|
|
@@ -63,6 +100,9 @@ ${createdItem.note}
|
|
|
63
100
|
onUpdate.updateBy.props.userId;
|
|
64
101
|
|
|
65
102
|
for (const updatedItem of updatedItems) {
|
|
103
|
+
const scheduledMaintenance: ScheduledMaintenance =
|
|
104
|
+
updatedItem.scheduledMaintenance!;
|
|
105
|
+
|
|
66
106
|
await ScheduledMaintenanceFeedService.createScheduledMaintenanceFeedItem(
|
|
67
107
|
{
|
|
68
108
|
scheduledMaintenanceId: updatedItem.scheduledMaintenanceId!,
|
|
@@ -72,10 +112,14 @@ ${createdItem.note}
|
|
|
72
112
|
displayColor: Blue500,
|
|
73
113
|
userId: userId || undefined,
|
|
74
114
|
|
|
75
|
-
feedInfoInMarkdown:
|
|
76
|
-
|
|
115
|
+
feedInfoInMarkdown: `📄 updated **Private Note** for this [Scheduled Maintenance ${scheduledMaintenance.scheduledMaintenanceNumber}](${(await ScheduledMaintenanceService.getScheduledMaintenanceLinkInDashboard(scheduledMaintenance.projectId!, scheduledMaintenance.id!)).toString()})
|
|
116
|
+
|
|
77
117
|
${updatedItem.note}
|
|
78
|
-
|
|
118
|
+
`,
|
|
119
|
+
workspaceNotification: {
|
|
120
|
+
sendWorkspaceNotification: true,
|
|
121
|
+
notifyUserId: userId || undefined,
|
|
122
|
+
},
|
|
79
123
|
},
|
|
80
124
|
);
|
|
81
125
|
}
|
|
@@ -8,6 +8,11 @@ import { ScheduledMaintenanceFeedEventType } from "../../Models/DatabaseModels/S
|
|
|
8
8
|
import { Gray500, Red500 } from "../../Types/BrandColors";
|
|
9
9
|
import { OnCreate, OnDelete } from "../Types/Database/Hooks";
|
|
10
10
|
import DeleteBy from "../Types/Database/DeleteBy";
|
|
11
|
+
import NotificationRuleEventType from "../../Types/Workspace/NotificationRules/EventType";
|
|
12
|
+
import WorkspaceNotificationRuleService from "./WorkspaceNotificationRuleService";
|
|
13
|
+
import WorkspaceNotificationRule from "../../Models/DatabaseModels/WorkspaceNotificationRule";
|
|
14
|
+
import logger from "../Utils/Logger";
|
|
15
|
+
import ScheduledMaintenanceService from "./ScheduledMaintenanceService";
|
|
11
16
|
|
|
12
17
|
export class Service extends DatabaseService<Model> {
|
|
13
18
|
public constructor() {
|
|
@@ -123,6 +128,38 @@ export class Service extends DatabaseService<Model> {
|
|
|
123
128
|
}
|
|
124
129
|
}
|
|
125
130
|
|
|
131
|
+
// get notification rule where inviteOwners is true.
|
|
132
|
+
const notificationRules: Array<WorkspaceNotificationRule> =
|
|
133
|
+
await WorkspaceNotificationRuleService.getNotificationRulesWhereInviteOwnersIsTrue(
|
|
134
|
+
{
|
|
135
|
+
projectId: projectId!,
|
|
136
|
+
notificationFor: {
|
|
137
|
+
scheduledMaintenanceId: scheduledMaintenanceId,
|
|
138
|
+
},
|
|
139
|
+
notificationRuleEventType:
|
|
140
|
+
NotificationRuleEventType.ScheduledMaintenance,
|
|
141
|
+
},
|
|
142
|
+
);
|
|
143
|
+
|
|
144
|
+
logger.debug(`Notification Rules for ScheduledMaintenance Owner Teams`);
|
|
145
|
+
logger.debug(notificationRules);
|
|
146
|
+
|
|
147
|
+
WorkspaceNotificationRuleService.inviteTeamsBasedOnRulesAndWorkspaceChannels(
|
|
148
|
+
{
|
|
149
|
+
notificationRules: notificationRules,
|
|
150
|
+
projectId: projectId!,
|
|
151
|
+
workspaceChannels:
|
|
152
|
+
await ScheduledMaintenanceService.getWorkspaceChannelForScheduledMaintenance(
|
|
153
|
+
{
|
|
154
|
+
scheduledMaintenanceId: scheduledMaintenanceId!,
|
|
155
|
+
},
|
|
156
|
+
),
|
|
157
|
+
teamIds: [teamId!],
|
|
158
|
+
},
|
|
159
|
+
).catch((error: Error) => {
|
|
160
|
+
logger.error(error);
|
|
161
|
+
});
|
|
162
|
+
|
|
126
163
|
return createdItem;
|
|
127
164
|
}
|
|
128
165
|
}
|
|
@@ -8,6 +8,11 @@ import UserService from "./UserService";
|
|
|
8
8
|
import ScheduledMaintenanceFeedService from "./ScheduledMaintenanceFeedService";
|
|
9
9
|
import { ScheduledMaintenanceFeedEventType } from "../../Models/DatabaseModels/ScheduledMaintenanceFeed";
|
|
10
10
|
import { Gray500, Red500 } from "../../Types/BrandColors";
|
|
11
|
+
import WorkspaceNotificationRule from "../../Models/DatabaseModels/WorkspaceNotificationRule";
|
|
12
|
+
import WorkspaceNotificationRuleService from "./WorkspaceNotificationRuleService";
|
|
13
|
+
import NotificationRuleEventType from "../../Types/Workspace/NotificationRules/EventType";
|
|
14
|
+
import ScheduledMaintenanceService from "./ScheduledMaintenanceService";
|
|
15
|
+
import logger from "../Utils/Logger";
|
|
11
16
|
|
|
12
17
|
export class Service extends DatabaseService<Model> {
|
|
13
18
|
public constructor() {
|
|
@@ -119,6 +124,35 @@ export class Service extends DatabaseService<Model> {
|
|
|
119
124
|
}
|
|
120
125
|
}
|
|
121
126
|
|
|
127
|
+
// get notification rule where inviteOwners is true.
|
|
128
|
+
const notificationRules: Array<WorkspaceNotificationRule> =
|
|
129
|
+
await WorkspaceNotificationRuleService.getNotificationRulesWhereInviteOwnersIsTrue(
|
|
130
|
+
{
|
|
131
|
+
projectId: projectId!,
|
|
132
|
+
notificationFor: {
|
|
133
|
+
scheduledMaintenanceId: scheduledMaintenanceId,
|
|
134
|
+
},
|
|
135
|
+
notificationRuleEventType:
|
|
136
|
+
NotificationRuleEventType.ScheduledMaintenance,
|
|
137
|
+
},
|
|
138
|
+
);
|
|
139
|
+
|
|
140
|
+
WorkspaceNotificationRuleService.inviteUsersBasedOnRulesAndWorkspaceChannels(
|
|
141
|
+
{
|
|
142
|
+
notificationRules: notificationRules,
|
|
143
|
+
projectId: projectId!,
|
|
144
|
+
workspaceChannels:
|
|
145
|
+
await ScheduledMaintenanceService.getWorkspaceChannelForScheduledMaintenance(
|
|
146
|
+
{
|
|
147
|
+
scheduledMaintenanceId: scheduledMaintenanceId!,
|
|
148
|
+
},
|
|
149
|
+
),
|
|
150
|
+
userIds: [userId!],
|
|
151
|
+
},
|
|
152
|
+
).catch((error: Error) => {
|
|
153
|
+
logger.error(error);
|
|
154
|
+
});
|
|
155
|
+
|
|
122
156
|
return createdItem;
|
|
123
157
|
}
|
|
124
158
|
}
|
|
@@ -8,6 +8,8 @@ import ObjectID from "../../Types/ObjectID";
|
|
|
8
8
|
import { ScheduledMaintenanceFeedEventType } from "../../Models/DatabaseModels/ScheduledMaintenanceFeed";
|
|
9
9
|
import { Blue500, Indigo500 } from "../../Types/BrandColors";
|
|
10
10
|
import { LIMIT_PER_PROJECT } from "../../Types/Database/LimitMax";
|
|
11
|
+
import ScheduledMaintenanceService from "./ScheduledMaintenanceService";
|
|
12
|
+
import ScheduledMaintenance from "../../Models/DatabaseModels/ScheduledMaintenance";
|
|
11
13
|
|
|
12
14
|
export class Service extends DatabaseService<Model> {
|
|
13
15
|
public constructor() {
|
|
@@ -34,6 +36,14 @@ export class Service extends DatabaseService<Model> {
|
|
|
34
36
|
const userId: ObjectID | null | undefined =
|
|
35
37
|
createdItem.createdByUserId || createdItem.createdByUser?.id;
|
|
36
38
|
|
|
39
|
+
const scheduledMaintenanceId: ObjectID =
|
|
40
|
+
createdItem.scheduledMaintenanceId!;
|
|
41
|
+
const projectId: ObjectID = createdItem.projectId!;
|
|
42
|
+
const scheduledMaintenanceNumber: number | null =
|
|
43
|
+
await ScheduledMaintenanceService.getScheduledMaintenanceNumber({
|
|
44
|
+
scheduledMaintenanceId: scheduledMaintenanceId,
|
|
45
|
+
});
|
|
46
|
+
|
|
37
47
|
await ScheduledMaintenanceFeedService.createScheduledMaintenanceFeedItem({
|
|
38
48
|
scheduledMaintenanceId: createdItem.scheduledMaintenanceId!,
|
|
39
49
|
projectId: createdItem.projectId!,
|
|
@@ -41,10 +51,14 @@ export class Service extends DatabaseService<Model> {
|
|
|
41
51
|
ScheduledMaintenanceFeedEventType.PublicNote,
|
|
42
52
|
displayColor: Indigo500,
|
|
43
53
|
userId: userId || undefined,
|
|
44
|
-
feedInfoInMarkdown:
|
|
45
|
-
|
|
54
|
+
feedInfoInMarkdown: `📄 posted **public note** for this [Scheduled Maintenance ${scheduledMaintenanceNumber}](${(await ScheduledMaintenanceService.getScheduledMaintenanceLinkInDashboard(projectId!, scheduledMaintenanceId!)).toString()}) on status page:
|
|
55
|
+
|
|
46
56
|
${createdItem.note}
|
|
47
|
-
|
|
57
|
+
`,
|
|
58
|
+
workspaceNotification: {
|
|
59
|
+
sendWorkspaceNotification: true,
|
|
60
|
+
notifyUserId: userId || undefined,
|
|
61
|
+
},
|
|
48
62
|
});
|
|
49
63
|
|
|
50
64
|
return createdItem;
|
|
@@ -77,25 +91,53 @@ ${createdItem.note}
|
|
|
77
91
|
onUpdate.updateBy.props.userId;
|
|
78
92
|
|
|
79
93
|
for (const updatedItem of updatedItems) {
|
|
94
|
+
const scheduledMaintenance: ScheduledMaintenance =
|
|
95
|
+
updatedItem.scheduledMaintenance!;
|
|
96
|
+
|
|
80
97
|
await ScheduledMaintenanceFeedService.createScheduledMaintenanceFeedItem(
|
|
81
98
|
{
|
|
82
99
|
scheduledMaintenanceId: updatedItem.scheduledMaintenanceId!,
|
|
83
100
|
projectId: updatedItem.projectId!,
|
|
84
101
|
scheduledMaintenanceFeedEventType:
|
|
85
|
-
ScheduledMaintenanceFeedEventType.
|
|
102
|
+
ScheduledMaintenanceFeedEventType.PrivateNote,
|
|
86
103
|
displayColor: Blue500,
|
|
87
104
|
userId: userId || undefined,
|
|
88
105
|
|
|
89
|
-
feedInfoInMarkdown:
|
|
90
|
-
|
|
106
|
+
feedInfoInMarkdown: `📄 updated **Public Note** for this [Scheduled Maintenance ${scheduledMaintenance.scheduledMaintenanceNumber}](${(await ScheduledMaintenanceService.getScheduledMaintenanceLinkInDashboard(scheduledMaintenance.projectId!, scheduledMaintenance.id!)).toString()})
|
|
107
|
+
|
|
91
108
|
${updatedItem.note}
|
|
92
|
-
|
|
109
|
+
`,
|
|
110
|
+
workspaceNotification: {
|
|
111
|
+
sendWorkspaceNotification: true,
|
|
112
|
+
notifyUserId: userId || undefined,
|
|
113
|
+
},
|
|
93
114
|
},
|
|
94
115
|
);
|
|
95
116
|
}
|
|
96
117
|
}
|
|
97
118
|
return onUpdate;
|
|
98
119
|
}
|
|
120
|
+
|
|
121
|
+
public async addNote(data: {
|
|
122
|
+
userId: ObjectID;
|
|
123
|
+
scheduledMaintenanceId: ObjectID;
|
|
124
|
+
projectId: ObjectID;
|
|
125
|
+
note: string;
|
|
126
|
+
}): Promise<Model> {
|
|
127
|
+
const publicNote: Model = new Model();
|
|
128
|
+
publicNote.createdByUserId = data.userId;
|
|
129
|
+
publicNote.scheduledMaintenanceId = data.scheduledMaintenanceId;
|
|
130
|
+
publicNote.projectId = data.projectId;
|
|
131
|
+
publicNote.note = data.note;
|
|
132
|
+
publicNote.postedAt = OneUptimeDate.getCurrentDate();
|
|
133
|
+
|
|
134
|
+
return this.create({
|
|
135
|
+
data: publicNote,
|
|
136
|
+
props: {
|
|
137
|
+
isRoot: true,
|
|
138
|
+
},
|
|
139
|
+
});
|
|
140
|
+
}
|
|
99
141
|
}
|
|
100
142
|
|
|
101
143
|
export default new Service();
|