@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.
Files changed (115) hide show
  1. package/Server/API/SlackAPI.ts +68 -0
  2. package/Server/Services/AccessTokenService.ts +21 -0
  3. package/Server/Services/AlertFeedService.ts +98 -0
  4. package/Server/Services/AlertInternalNoteService.ts +49 -8
  5. package/Server/Services/AlertOwnerTeamService.ts +50 -2
  6. package/Server/Services/AlertOwnerUserService.ts +52 -2
  7. package/Server/Services/AlertService.ts +236 -37
  8. package/Server/Services/AlertStateService.ts +24 -0
  9. package/Server/Services/AlertStateTimelineService.ts +30 -2
  10. package/Server/Services/IncidentInternalNoteService.ts +6 -6
  11. package/Server/Services/IncidentPublicNoteService.ts +7 -4
  12. package/Server/Services/IncidentStateTimelineService.ts +2 -1
  13. package/Server/Services/ScheduledMaintenanceFeedService.ts +103 -0
  14. package/Server/Services/ScheduledMaintenanceInternalNoteService.ts +50 -6
  15. package/Server/Services/ScheduledMaintenanceOwnerTeamService.ts +37 -0
  16. package/Server/Services/ScheduledMaintenanceOwnerUserService.ts +34 -0
  17. package/Server/Services/ScheduledMaintenancePublicNoteService.ts +49 -7
  18. package/Server/Services/ScheduledMaintenanceService.ts +375 -12
  19. package/Server/Services/ScheduledMaintenanceStateService.ts +122 -34
  20. package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +33 -1
  21. package/Server/Services/WorkspaceNotificationRuleService.ts +12 -0
  22. package/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.ts +38 -0
  23. package/Server/Utils/Workspace/MicrosoftTeams/Messages/Alert.ts +116 -0
  24. package/Server/Utils/Workspace/MicrosoftTeams/Messages/Incident.ts +36 -115
  25. package/Server/Utils/Workspace/MicrosoftTeams/Messages/ScheduledMaintenance.ts +108 -0
  26. package/Server/Utils/Workspace/Slack/Actions/ActionTypes.ts +20 -2
  27. package/Server/Utils/Workspace/Slack/Actions/Alert.ts +697 -0
  28. package/Server/Utils/Workspace/Slack/Actions/Auth.ts +9 -2
  29. package/Server/Utils/Workspace/Slack/Actions/Incident.ts +9 -3
  30. package/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.ts +956 -0
  31. package/Server/Utils/Workspace/Slack/Messages/Alert.ts +116 -0
  32. package/Server/Utils/Workspace/Slack/Messages/ScheduledMaintenance.ts +108 -0
  33. package/Server/Utils/Workspace/Slack/Slack.ts +48 -2
  34. package/Server/Utils/Workspace/Slack/app-manifest.json +3 -3
  35. package/Server/Utils/Workspace/WorkspaceBase.ts +14 -0
  36. package/Server/Utils/Workspace/WorkspaceMessages/Alert.ts +69 -0
  37. package/Server/Utils/Workspace/WorkspaceMessages/ScheduledMaintenance.ts +73 -0
  38. package/Types/Date.ts +5 -0
  39. package/Types/Workspace/WorkspaceMessagePayload.ts +9 -0
  40. package/build/dist/Server/API/SlackAPI.js +54 -0
  41. package/build/dist/Server/API/SlackAPI.js.map +1 -1
  42. package/build/dist/Server/Services/AccessTokenService.js +11 -0
  43. package/build/dist/Server/Services/AccessTokenService.js.map +1 -1
  44. package/build/dist/Server/Services/AlertFeedService.js +60 -0
  45. package/build/dist/Server/Services/AlertFeedService.js.map +1 -1
  46. package/build/dist/Server/Services/AlertInternalNoteService.js +39 -8
  47. package/build/dist/Server/Services/AlertInternalNoteService.js.map +1 -1
  48. package/build/dist/Server/Services/AlertOwnerTeamService.js +40 -2
  49. package/build/dist/Server/Services/AlertOwnerTeamService.js.map +1 -1
  50. package/build/dist/Server/Services/AlertOwnerUserService.js +41 -3
  51. package/build/dist/Server/Services/AlertOwnerUserService.js.map +1 -1
  52. package/build/dist/Server/Services/AlertService.js +192 -35
  53. package/build/dist/Server/Services/AlertService.js.map +1 -1
  54. package/build/dist/Server/Services/AlertStateService.js +13 -0
  55. package/build/dist/Server/Services/AlertStateService.js.map +1 -1
  56. package/build/dist/Server/Services/AlertStateTimelineService.js +26 -2
  57. package/build/dist/Server/Services/AlertStateTimelineService.js.map +1 -1
  58. package/build/dist/Server/Services/IncidentInternalNoteService.js +6 -6
  59. package/build/dist/Server/Services/IncidentInternalNoteService.js.map +1 -1
  60. package/build/dist/Server/Services/IncidentPublicNoteService.js +5 -4
  61. package/build/dist/Server/Services/IncidentPublicNoteService.js.map +1 -1
  62. package/build/dist/Server/Services/IncidentStateTimelineService.js +1 -1
  63. package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
  64. package/build/dist/Server/Services/ScheduledMaintenanceFeedService.js +60 -0
  65. package/build/dist/Server/Services/ScheduledMaintenanceFeedService.js.map +1 -1
  66. package/build/dist/Server/Services/ScheduledMaintenanceInternalNoteService.js +36 -6
  67. package/build/dist/Server/Services/ScheduledMaintenanceInternalNoteService.js.map +1 -1
  68. package/build/dist/Server/Services/ScheduledMaintenanceOwnerTeamService.js +24 -0
  69. package/build/dist/Server/Services/ScheduledMaintenanceOwnerTeamService.js.map +1 -1
  70. package/build/dist/Server/Services/ScheduledMaintenanceOwnerUserService.js +22 -0
  71. package/build/dist/Server/Services/ScheduledMaintenanceOwnerUserService.js.map +1 -1
  72. package/build/dist/Server/Services/ScheduledMaintenancePublicNoteService.js +36 -7
  73. package/build/dist/Server/Services/ScheduledMaintenancePublicNoteService.js.map +1 -1
  74. package/build/dist/Server/Services/ScheduledMaintenanceService.js +275 -13
  75. package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
  76. package/build/dist/Server/Services/ScheduledMaintenanceStateService.js +52 -4
  77. package/build/dist/Server/Services/ScheduledMaintenanceStateService.js.map +1 -1
  78. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +28 -1
  79. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
  80. package/build/dist/Server/Services/WorkspaceNotificationRuleService.js +10 -0
  81. package/build/dist/Server/Services/WorkspaceNotificationRuleService.js.map +1 -1
  82. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.js +37 -0
  83. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ActionTypes.js.map +1 -0
  84. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Messages/Alert.js +82 -0
  85. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Messages/Alert.js.map +1 -0
  86. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Messages/Incident.js +33 -99
  87. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Messages/Incident.js.map +1 -1
  88. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Messages/ScheduledMaintenance.js +74 -0
  89. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Messages/ScheduledMaintenance.js.map +1 -0
  90. package/build/dist/Server/Utils/Workspace/Slack/Actions/ActionTypes.js +20 -2
  91. package/build/dist/Server/Utils/Workspace/Slack/Actions/ActionTypes.js.map +1 -1
  92. package/build/dist/Server/Utils/Workspace/Slack/Actions/Alert.js +425 -0
  93. package/build/dist/Server/Utils/Workspace/Slack/Actions/Alert.js.map +1 -0
  94. package/build/dist/Server/Utils/Workspace/Slack/Actions/Auth.js +2 -0
  95. package/build/dist/Server/Utils/Workspace/Slack/Actions/Auth.js.map +1 -1
  96. package/build/dist/Server/Utils/Workspace/Slack/Actions/Incident.js +5 -2
  97. package/build/dist/Server/Utils/Workspace/Slack/Actions/Incident.js.map +1 -1
  98. package/build/dist/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.js +599 -0
  99. package/build/dist/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.js.map +1 -0
  100. package/build/dist/Server/Utils/Workspace/Slack/Messages/Alert.js +82 -0
  101. package/build/dist/Server/Utils/Workspace/Slack/Messages/Alert.js.map +1 -0
  102. package/build/dist/Server/Utils/Workspace/Slack/Messages/ScheduledMaintenance.js +74 -0
  103. package/build/dist/Server/Utils/Workspace/Slack/Messages/ScheduledMaintenance.js.map +1 -0
  104. package/build/dist/Server/Utils/Workspace/Slack/Slack.js +34 -0
  105. package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
  106. package/build/dist/Server/Utils/Workspace/Slack/app-manifest.json +3 -3
  107. package/build/dist/Server/Utils/Workspace/WorkspaceBase.js +8 -0
  108. package/build/dist/Server/Utils/Workspace/WorkspaceBase.js.map +1 -1
  109. package/build/dist/Server/Utils/Workspace/WorkspaceMessages/Alert.js +48 -0
  110. package/build/dist/Server/Utils/Workspace/WorkspaceMessages/Alert.js.map +1 -0
  111. package/build/dist/Server/Utils/Workspace/WorkspaceMessages/ScheduledMaintenance.js +47 -0
  112. package/build/dist/Server/Utils/Workspace/WorkspaceMessages/ScheduledMaintenance.js.map +1 -0
  113. package/build/dist/Types/Date.js +4 -0
  114. package/build/dist/Types/Date.js.map +1 -1
  115. 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: `**Posted Internal / Private Note**
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: `**Updated Private Note**
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: `**Posted public note for this scheduled maintenance on status page**
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.PublicNote,
102
+ ScheduledMaintenanceFeedEventType.PrivateNote,
86
103
  displayColor: Blue500,
87
104
  userId: userId || undefined,
88
105
 
89
- feedInfoInMarkdown: `**Updated Public Note**
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();