@oneuptime/common 7.0.3707 → 7.0.3708
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/WorkspaceNotificationRuleService.ts +205 -11
- package/Server/Services/WorkspaceProjectAuthTokenService.ts +1 -0
- package/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.ts +18 -7
- package/Server/Utils/Workspace/Slack/Slack.ts +352 -45
- package/Server/Utils/Workspace/Slack/app-manifest.json +9 -4
- package/Server/Utils/Workspace/WorkspaceBase.ts +31 -2
- package/Types/Workflow/Component.ts +1 -0
- package/Types/Workflow/Components/BaseModel.ts +30 -0
- package/Types/Workflow/Components/Manual.ts +10 -0
- package/Types/Workflow/Components/Schedule.ts +1 -0
- package/Types/Workflow/Components/Webhook.ts +26 -0
- package/UI/Components/Workflow/RunForm.tsx +23 -25
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js +136 -8
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js.map +1 -1
- package/build/dist/Server/Services/WorkspaceProjectAuthTokenService.js +1 -0
- package/build/dist/Server/Services/WorkspaceProjectAuthTokenService.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.js +14 -5
- package/build/dist/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js +251 -36
- package/build/dist/Server/Utils/Workspace/Slack/Slack.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/Slack/app-manifest.json +9 -4
- package/build/dist/Server/Utils/Workspace/WorkspaceBase.js +12 -2
- package/build/dist/Server/Utils/Workspace/WorkspaceBase.js.map +1 -1
- package/build/dist/Types/Workflow/Components/BaseModel.js +30 -0
- package/build/dist/Types/Workflow/Components/BaseModel.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Manual.js +10 -0
- package/build/dist/Types/Workflow/Components/Manual.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Schedule.js +1 -0
- package/build/dist/Types/Workflow/Components/Schedule.js.map +1 -1
- package/build/dist/Types/Workflow/Components/Webhook.js +26 -0
- package/build/dist/Types/Workflow/Components/Webhook.js.map +1 -1
- package/build/dist/UI/Components/Workflow/RunForm.js +16 -14
- package/build/dist/UI/Components/Workflow/RunForm.js.map +1 -1
- package/package.json +2 -2
- /package/Server/Utils/Workspace/Slack/{app-manifest-temp.json → app-manifest.example.json} +0 -0
|
@@ -6,78 +6,181 @@ import BadRequestException from "../../../../Types/Exception/BadRequestException
|
|
|
6
6
|
import WorkspaceBase from "../WorkspaceBase";
|
|
7
7
|
import WorkspaceType from "../../../../Types/Workspace/WorkspaceType";
|
|
8
8
|
export default class SlackUtil extends WorkspaceBase {
|
|
9
|
-
static async
|
|
9
|
+
static async joinChannel(data) {
|
|
10
10
|
var _a;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
logger.debug("Joining channel with data:");
|
|
12
|
+
logger.debug(data);
|
|
13
|
+
// Join channel
|
|
14
|
+
const response = await API.post(URL.fromString("https://slack.com/api/conversations.join"), {
|
|
15
|
+
channel: data.channelId,
|
|
16
|
+
}, {
|
|
17
|
+
Authorization: `Bearer ${data.authToken}`,
|
|
18
|
+
["Content-Type"]: "application/x-www-form-urlencoded",
|
|
19
|
+
});
|
|
20
|
+
logger.debug("Response from Slack API for joining channel:");
|
|
21
|
+
logger.debug(response);
|
|
22
|
+
if (response instanceof HTTPErrorResponse) {
|
|
23
|
+
logger.error("Error response from Slack API:");
|
|
24
|
+
logger.error(response);
|
|
25
|
+
throw response;
|
|
26
|
+
}
|
|
27
|
+
if (((_a = response.jsonData) === null || _a === void 0 ? void 0 : _a["ok"]) !== true) {
|
|
28
|
+
logger.error("Invalid response from Slack API:");
|
|
29
|
+
logger.error(response.jsonData);
|
|
30
|
+
throw new BadRequestException("Invalid response");
|
|
31
|
+
}
|
|
32
|
+
logger.debug("Channel joined successfully with data:");
|
|
33
|
+
logger.debug(data);
|
|
34
|
+
}
|
|
35
|
+
static async inviteUserToChannelByChannelId(data) {
|
|
36
|
+
var _a;
|
|
37
|
+
logger.debug("Inviting user to channel with data:");
|
|
38
|
+
logger.debug(data);
|
|
15
39
|
const response = await API.post(URL.fromString("https://slack.com/api/conversations.invite"), {
|
|
16
|
-
channel: channelId,
|
|
40
|
+
channel: data.channelId,
|
|
17
41
|
users: data.workspaceUserId,
|
|
18
42
|
}, {
|
|
19
43
|
Authorization: `Bearer ${data.authToken}`,
|
|
44
|
+
["Content-Type"]: "application/x-www-form-urlencoded",
|
|
20
45
|
});
|
|
46
|
+
logger.debug("Response from Slack API for inviting user:");
|
|
47
|
+
logger.debug(response);
|
|
21
48
|
if (response instanceof HTTPErrorResponse) {
|
|
49
|
+
logger.error("Error response from Slack API:");
|
|
50
|
+
logger.error(response);
|
|
22
51
|
throw response;
|
|
23
52
|
}
|
|
24
53
|
if (((_a = response.jsonData) === null || _a === void 0 ? void 0 : _a["ok"]) !== true) {
|
|
54
|
+
logger.error("Invalid response from Slack API:");
|
|
55
|
+
logger.error(response.jsonData);
|
|
25
56
|
throw new BadRequestException("Invalid response");
|
|
26
57
|
}
|
|
58
|
+
logger.debug("User invited to channel successfully.");
|
|
59
|
+
}
|
|
60
|
+
static async inviteUserToChannelByChannelName(data) {
|
|
61
|
+
if (data.channelName && data.channelName.startsWith("#")) {
|
|
62
|
+
// trim # from channel name
|
|
63
|
+
data.channelName = data.channelName.substring(1);
|
|
64
|
+
}
|
|
65
|
+
logger.debug("Inviting user to channel with data:");
|
|
66
|
+
logger.debug(data);
|
|
67
|
+
const channelId = (await this.getWorkspaceChannelFromChannelName({
|
|
68
|
+
authToken: data.authToken,
|
|
69
|
+
channelName: data.channelName,
|
|
70
|
+
})).id;
|
|
71
|
+
return this.inviteUserToChannelByChannelId({
|
|
72
|
+
authToken: data.authToken,
|
|
73
|
+
channelId: channelId,
|
|
74
|
+
workspaceUserId: data.workspaceUserId,
|
|
75
|
+
});
|
|
27
76
|
}
|
|
28
77
|
static async createChannelsIfDoesNotExist(data) {
|
|
29
|
-
|
|
78
|
+
logger.debug("Creating channels if they do not exist with data:");
|
|
79
|
+
logger.debug(data);
|
|
30
80
|
const workspaceChannels = [];
|
|
31
81
|
const existingWorkspaceChannels = await this.getAllWorkspaceChannels({
|
|
32
82
|
authToken: data.authToken,
|
|
33
83
|
});
|
|
34
|
-
|
|
84
|
+
logger.debug("Existing workspace channels:");
|
|
85
|
+
logger.debug(existingWorkspaceChannels);
|
|
86
|
+
for (let channelName of data.channelNames) {
|
|
87
|
+
// if channel name starts with #, remove it
|
|
88
|
+
if (channelName && channelName.startsWith("#")) {
|
|
89
|
+
channelName = channelName.substring(1);
|
|
90
|
+
}
|
|
35
91
|
if (existingWorkspaceChannels[channelName]) {
|
|
36
92
|
logger.debug(`Channel ${channelName} already exists.`);
|
|
37
93
|
workspaceChannels.push(existingWorkspaceChannels[channelName]);
|
|
38
94
|
continue;
|
|
39
95
|
}
|
|
96
|
+
logger.debug(`Channel ${channelName} does not exist. Creating channel.`);
|
|
40
97
|
const channel = await this.createChannel({
|
|
41
98
|
authToken: data.authToken,
|
|
42
99
|
channelName: channelName,
|
|
43
100
|
});
|
|
44
101
|
if (channel) {
|
|
102
|
+
logger.debug(`Channel ${channelName} created successfully.`);
|
|
45
103
|
workspaceChannels.push(channel);
|
|
46
104
|
}
|
|
47
105
|
}
|
|
106
|
+
logger.debug("Channels created or found:");
|
|
107
|
+
logger.debug(workspaceChannels);
|
|
48
108
|
return workspaceChannels;
|
|
49
109
|
}
|
|
110
|
+
static async getWorkspaceChannelFromChannelName(data) {
|
|
111
|
+
logger.debug("Getting workspace channel ID from channel name with data:");
|
|
112
|
+
logger.debug(data);
|
|
113
|
+
const channels = await this.getAllWorkspaceChannels({
|
|
114
|
+
authToken: data.authToken,
|
|
115
|
+
});
|
|
116
|
+
logger.debug("All workspace channels:");
|
|
117
|
+
logger.debug(channels);
|
|
118
|
+
if (!channels[data.channelName]) {
|
|
119
|
+
logger.error("Channel not found.");
|
|
120
|
+
throw new Error("Channel not found.");
|
|
121
|
+
}
|
|
122
|
+
logger.debug("Workspace channel ID obtained:");
|
|
123
|
+
logger.debug(channels[data.channelName].id);
|
|
124
|
+
return channels[data.channelName];
|
|
125
|
+
}
|
|
50
126
|
static async getWorkspaceChannelFromChannelId(data) {
|
|
51
|
-
var _a, _b;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
127
|
+
var _a, _b, _c;
|
|
128
|
+
logger.debug("Getting workspace channel from channel ID with data:");
|
|
129
|
+
logger.debug(data);
|
|
130
|
+
const response = await API.post(URL.fromString("https://slack.com/api/conversations.info"), {
|
|
131
|
+
channel: data.channelId,
|
|
132
|
+
}, {
|
|
133
|
+
Authorization: `Bearer ${data.authToken}`,
|
|
134
|
+
["Content-Type"]: "application/x-www-form-urlencoded",
|
|
59
135
|
});
|
|
136
|
+
logger.debug("Response from Slack API for getting channel info:");
|
|
137
|
+
logger.debug(response);
|
|
60
138
|
if (response instanceof HTTPErrorResponse) {
|
|
139
|
+
logger.error("Error response from Slack API:");
|
|
140
|
+
logger.error(response);
|
|
61
141
|
throw response;
|
|
62
142
|
}
|
|
63
|
-
|
|
143
|
+
// check for ok response
|
|
144
|
+
if (((_a = response.jsonData) === null || _a === void 0 ? void 0 : _a["ok"]) !== true) {
|
|
145
|
+
logger.error("Invalid response from Slack API:");
|
|
146
|
+
logger.error(response.jsonData);
|
|
147
|
+
throw new BadRequestException("Invalid response");
|
|
148
|
+
}
|
|
149
|
+
if (!((_c = (_b = response.jsonData) === null || _b === void 0 ? void 0 : _b["channel"]) === null || _c === void 0 ? void 0 : _c["name"])) {
|
|
150
|
+
logger.error("Invalid response from Slack API:");
|
|
151
|
+
logger.error(response.jsonData);
|
|
64
152
|
throw new Error("Invalid response");
|
|
65
153
|
}
|
|
66
|
-
|
|
154
|
+
const channel = {
|
|
67
155
|
name: response.jsonData["channel"]["name"],
|
|
68
156
|
id: data.channelId,
|
|
69
157
|
workspaceType: WorkspaceType.Slack,
|
|
70
158
|
};
|
|
159
|
+
logger.debug("Workspace channel obtained:");
|
|
160
|
+
logger.debug(channel);
|
|
161
|
+
return channel;
|
|
71
162
|
}
|
|
72
163
|
static async getAllWorkspaceChannels(data) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
164
|
+
var _a;
|
|
165
|
+
logger.debug("Getting all workspace channels with data:");
|
|
166
|
+
logger.debug(data);
|
|
167
|
+
const response = await API.post(URL.fromString("https://slack.com/api/conversations.list"), {}, {
|
|
168
|
+
Authorization: `Bearer ${data.authToken}`,
|
|
169
|
+
["Content-Type"]: "application/x-www-form-urlencoded",
|
|
77
170
|
});
|
|
171
|
+
logger.debug("Response from Slack API for getting all channels:");
|
|
172
|
+
logger.debug(response);
|
|
78
173
|
if (response instanceof HTTPErrorResponse) {
|
|
174
|
+
logger.error("Error response from Slack API:");
|
|
175
|
+
logger.error(response);
|
|
79
176
|
throw response;
|
|
80
177
|
}
|
|
178
|
+
// check for ok response
|
|
179
|
+
if (((_a = response.jsonData) === null || _a === void 0 ? void 0 : _a["ok"]) !== true) {
|
|
180
|
+
logger.error("Invalid response from Slack API:");
|
|
181
|
+
logger.error(response.jsonData);
|
|
182
|
+
throw new BadRequestException("Invalid response");
|
|
183
|
+
}
|
|
81
184
|
const channels = {};
|
|
82
185
|
for (const channel of response.jsonData["channels"]) {
|
|
83
186
|
if (!channel["id"] || !channel["name"]) {
|
|
@@ -89,18 +192,27 @@ export default class SlackUtil extends WorkspaceBase {
|
|
|
89
192
|
workspaceType: WorkspaceType.Slack,
|
|
90
193
|
};
|
|
91
194
|
}
|
|
195
|
+
logger.debug("All workspace channels obtained:");
|
|
196
|
+
logger.debug(channels);
|
|
92
197
|
return channels;
|
|
93
198
|
}
|
|
94
199
|
static async sendMessage(data) {
|
|
95
|
-
logger.debug("
|
|
200
|
+
logger.debug("Sending message to Slack with data:");
|
|
96
201
|
logger.debug(data);
|
|
97
202
|
const blocks = this.getBlocksFromWorkspaceMessagePayload(data.workspaceMessagePayload);
|
|
203
|
+
logger.debug("Blocks generated from workspace message payload:");
|
|
204
|
+
logger.debug(blocks);
|
|
98
205
|
const existingWorkspaceChannels = await this.getAllWorkspaceChannels({
|
|
99
206
|
authToken: data.authToken,
|
|
100
207
|
});
|
|
208
|
+
logger.debug("Existing workspace channels:");
|
|
209
|
+
logger.debug(existingWorkspaceChannels);
|
|
101
210
|
const channelIdsToPostTo = [];
|
|
102
|
-
for (
|
|
103
|
-
|
|
211
|
+
for (let channelName of data.workspaceMessagePayload.channelNames) {
|
|
212
|
+
if (channelName && channelName.startsWith("#")) {
|
|
213
|
+
// trim # from channel name
|
|
214
|
+
channelName = channelName.substring(1);
|
|
215
|
+
}
|
|
104
216
|
let channel = null;
|
|
105
217
|
if (existingWorkspaceChannels[channelName]) {
|
|
106
218
|
channel = existingWorkspaceChannels[channelName];
|
|
@@ -112,75 +224,173 @@ export default class SlackUtil extends WorkspaceBase {
|
|
|
112
224
|
logger.debug(`Channel ${channelName} does not exist.`);
|
|
113
225
|
}
|
|
114
226
|
}
|
|
227
|
+
logger.debug("Channel IDs to post to:");
|
|
228
|
+
logger.debug(channelIdsToPostTo);
|
|
115
229
|
for (const channelId of channelIdsToPostTo) {
|
|
116
230
|
try {
|
|
117
|
-
//
|
|
231
|
+
// check if the user is in the channel.
|
|
232
|
+
const isUserInChannel = await this.isUserInChannel({
|
|
233
|
+
authToken: data.authToken,
|
|
234
|
+
channelId: channelId,
|
|
235
|
+
userId: data.userId,
|
|
236
|
+
});
|
|
237
|
+
if (!isUserInChannel) {
|
|
238
|
+
// add user to the channel
|
|
239
|
+
await this.joinChannel({
|
|
240
|
+
authToken: data.authToken,
|
|
241
|
+
channelId: channelId,
|
|
242
|
+
});
|
|
243
|
+
}
|
|
118
244
|
await this.sendPayloadBlocksToChannel({
|
|
119
245
|
authToken: data.authToken,
|
|
120
246
|
channelId: channelId,
|
|
121
247
|
blocks: blocks,
|
|
122
248
|
});
|
|
249
|
+
logger.debug(`Message sent to channel ID ${channelId} successfully.`);
|
|
123
250
|
}
|
|
124
251
|
catch (e) {
|
|
252
|
+
logger.error(`Error sending message to channel ID ${channelId}:`);
|
|
125
253
|
logger.error(e);
|
|
126
254
|
}
|
|
127
255
|
}
|
|
128
256
|
}
|
|
129
257
|
static async sendPayloadBlocksToChannel(data) {
|
|
130
258
|
var _a;
|
|
259
|
+
logger.debug("Sending payload blocks to channel with data:");
|
|
260
|
+
logger.debug(JSON.stringify(data, null, 2));
|
|
131
261
|
const response = await API.post(URL.fromString("https://slack.com/api/chat.postMessage"), {
|
|
132
262
|
channel: data.channelId,
|
|
133
263
|
blocks: data.blocks,
|
|
134
264
|
}, {
|
|
135
265
|
Authorization: `Bearer ${data.authToken}`,
|
|
266
|
+
["Content-Type"]: "application/json",
|
|
136
267
|
});
|
|
268
|
+
logger.debug("Response from Slack API for sending message:");
|
|
269
|
+
logger.debug(response);
|
|
137
270
|
if (response instanceof HTTPErrorResponse) {
|
|
271
|
+
logger.error("Error response from Slack API:");
|
|
272
|
+
logger.error(response);
|
|
138
273
|
throw response;
|
|
139
274
|
}
|
|
140
275
|
if (((_a = response.jsonData) === null || _a === void 0 ? void 0 : _a["ok"]) !== true) {
|
|
276
|
+
logger.error("Invalid response from Slack API:");
|
|
277
|
+
logger.error(response.jsonData);
|
|
141
278
|
throw new BadRequestException("Invalid response");
|
|
142
279
|
}
|
|
280
|
+
logger.debug("Payload blocks sent to channel successfully.");
|
|
143
281
|
}
|
|
144
282
|
static async createChannel(data) {
|
|
145
|
-
var _a, _b, _c, _d;
|
|
283
|
+
var _a, _b, _c, _d, _e;
|
|
284
|
+
logger.debug("Creating channel with data:");
|
|
285
|
+
logger.debug(data);
|
|
146
286
|
const response = await API.post(URL.fromString("https://slack.com/api/conversations.create"), {
|
|
147
287
|
name: data.channelName,
|
|
148
288
|
}, {
|
|
149
289
|
Authorization: `Bearer ${data.authToken}`,
|
|
290
|
+
["Content-Type"]: "application/x-www-form-urlencoded",
|
|
150
291
|
});
|
|
292
|
+
logger.debug("Response from Slack API for creating channel:");
|
|
293
|
+
logger.debug(response);
|
|
151
294
|
if (response instanceof HTTPErrorResponse) {
|
|
295
|
+
logger.error("Error response from Slack API:");
|
|
296
|
+
logger.error(response);
|
|
152
297
|
throw response;
|
|
153
298
|
}
|
|
154
|
-
|
|
155
|
-
|
|
299
|
+
// check for ok response
|
|
300
|
+
if (((_a = response.jsonData) === null || _a === void 0 ? void 0 : _a["ok"]) !== true) {
|
|
301
|
+
logger.error("Invalid response from Slack API:");
|
|
302
|
+
logger.error(response.jsonData);
|
|
303
|
+
throw new BadRequestException("Invalid response");
|
|
304
|
+
}
|
|
305
|
+
if (!((_c = (_b = response.jsonData) === null || _b === void 0 ? void 0 : _b["channel"]) === null || _c === void 0 ? void 0 : _c["id"]) ||
|
|
306
|
+
!((_e = (_d = response.jsonData) === null || _d === void 0 ? void 0 : _d["channel"]) === null || _e === void 0 ? void 0 : _e["name"])) {
|
|
307
|
+
logger.error("Invalid response from Slack API:");
|
|
308
|
+
logger.error(response.jsonData);
|
|
156
309
|
throw new Error("Invalid response");
|
|
157
310
|
}
|
|
158
|
-
|
|
311
|
+
const channel = {
|
|
159
312
|
id: response.jsonData["channel"]["id"],
|
|
160
313
|
name: response.jsonData["channel"]["name"],
|
|
161
314
|
workspaceType: WorkspaceType.Slack,
|
|
162
315
|
};
|
|
316
|
+
logger.debug("Channel created successfully:");
|
|
317
|
+
logger.debug(channel);
|
|
318
|
+
return channel;
|
|
163
319
|
}
|
|
164
320
|
static getHeaderBlock(data) {
|
|
165
|
-
|
|
321
|
+
logger.debug("Getting header block with data:");
|
|
322
|
+
logger.debug(data);
|
|
323
|
+
const headerBlock = {
|
|
166
324
|
type: "header",
|
|
167
325
|
text: {
|
|
168
326
|
type: "plain_text",
|
|
169
327
|
text: data.payloadHeaderBlock.text,
|
|
170
328
|
},
|
|
171
329
|
};
|
|
330
|
+
logger.debug("Header block generated:");
|
|
331
|
+
logger.debug(headerBlock);
|
|
332
|
+
return headerBlock;
|
|
172
333
|
}
|
|
173
334
|
static getMarkdownBlock(data) {
|
|
174
|
-
|
|
335
|
+
logger.debug("Getting markdown block with data:");
|
|
336
|
+
logger.debug(data);
|
|
337
|
+
const markdownBlock = {
|
|
175
338
|
type: "section",
|
|
176
339
|
text: {
|
|
177
340
|
type: "mrkdwn",
|
|
178
341
|
text: data.payloadMarkdownBlock.text,
|
|
179
342
|
},
|
|
180
343
|
};
|
|
344
|
+
logger.debug("Markdown block generated:");
|
|
345
|
+
logger.debug(markdownBlock);
|
|
346
|
+
return markdownBlock;
|
|
347
|
+
}
|
|
348
|
+
static async isUserInChannel(data) {
|
|
349
|
+
var _a, _b;
|
|
350
|
+
const members = [];
|
|
351
|
+
logger.debug("Checking if user is in channel with data:");
|
|
352
|
+
logger.debug(data);
|
|
353
|
+
let cursor = undefined;
|
|
354
|
+
do {
|
|
355
|
+
// check if the user is in the channel, return true if they are, false if they are not
|
|
356
|
+
const requestBody = {
|
|
357
|
+
channel: data.channelId,
|
|
358
|
+
limit: 1000,
|
|
359
|
+
};
|
|
360
|
+
if (cursor) {
|
|
361
|
+
requestBody["cursor"] = cursor;
|
|
362
|
+
}
|
|
363
|
+
const response = await API.post(URL.fromString("https://slack.com/api/conversations.members"), requestBody, {
|
|
364
|
+
Authorization: `Bearer ${data.authToken}`,
|
|
365
|
+
["Content-Type"]: "application/x-www-form-urlencoded",
|
|
366
|
+
});
|
|
367
|
+
logger.debug("Response from Slack API for getting channel members:");
|
|
368
|
+
logger.debug(response);
|
|
369
|
+
if (response instanceof HTTPErrorResponse) {
|
|
370
|
+
logger.error("Error response from Slack API:");
|
|
371
|
+
logger.error(response);
|
|
372
|
+
throw response;
|
|
373
|
+
}
|
|
374
|
+
// check for ok response
|
|
375
|
+
if (((_a = response.jsonData) === null || _a === void 0 ? void 0 : _a["ok"]) !== true) {
|
|
376
|
+
logger.error("Invalid response from Slack API:");
|
|
377
|
+
logger.error(response.jsonData);
|
|
378
|
+
throw new BadRequestException("Invalid response");
|
|
379
|
+
}
|
|
380
|
+
// check if the user is in the channel
|
|
381
|
+
const membersOnThisPage = response.jsonData["members"];
|
|
382
|
+
members.push(...membersOnThisPage);
|
|
383
|
+
cursor = (_b = response.jsonData["response_metadata"]) === null || _b === void 0 ? void 0 : _b["next_cursor"];
|
|
384
|
+
} while (cursor);
|
|
385
|
+
if (members.includes(data.userId)) {
|
|
386
|
+
return true;
|
|
387
|
+
}
|
|
388
|
+
return false;
|
|
181
389
|
}
|
|
182
390
|
static getButtonBlock(data) {
|
|
183
|
-
|
|
391
|
+
logger.debug("Getting button block with data:");
|
|
392
|
+
logger.debug(data);
|
|
393
|
+
const buttonBlock = {
|
|
184
394
|
type: "button",
|
|
185
395
|
text: {
|
|
186
396
|
type: "plain_text",
|
|
@@ -189,11 +399,14 @@ export default class SlackUtil extends WorkspaceBase {
|
|
|
189
399
|
value: data.payloadButtonBlock.title,
|
|
190
400
|
action_id: data.payloadButtonBlock.title,
|
|
191
401
|
};
|
|
402
|
+
logger.debug("Button block generated:");
|
|
403
|
+
logger.debug(buttonBlock);
|
|
404
|
+
return buttonBlock;
|
|
192
405
|
}
|
|
193
406
|
static async sendMessageToChannelViaIncomingWebhook(data) {
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
apiResult = await API.post(data.url, {
|
|
407
|
+
logger.debug("Sending message to channel via incoming webhook with data:");
|
|
408
|
+
logger.debug(data);
|
|
409
|
+
const apiResult = await API.post(data.url, {
|
|
197
410
|
blocks: [
|
|
198
411
|
{
|
|
199
412
|
type: "section",
|
|
@@ -204,6 +417,8 @@ export default class SlackUtil extends WorkspaceBase {
|
|
|
204
417
|
},
|
|
205
418
|
],
|
|
206
419
|
});
|
|
420
|
+
logger.debug("Response from Slack API for sending message via webhook:");
|
|
421
|
+
logger.debug(apiResult);
|
|
207
422
|
return apiResult;
|
|
208
423
|
}
|
|
209
424
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slack.js","sourceRoot":"","sources":["../../../../../../Server/Utils/Workspace/Slack/Slack.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Slack.js","sourceRoot":"","sources":["../../../../../../Server/Utils/Workspace/Slack/Slack.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,12 +45,17 @@
|
|
|
45
45
|
],
|
|
46
46
|
"scopes": {
|
|
47
47
|
"user": [
|
|
48
|
-
"
|
|
49
|
-
"identity.basic",
|
|
50
|
-
"email"
|
|
48
|
+
"users:read"
|
|
51
49
|
],
|
|
52
50
|
"bot": [
|
|
53
|
-
"commands"
|
|
51
|
+
"commands",
|
|
52
|
+
"channels:history",
|
|
53
|
+
"channels:join",
|
|
54
|
+
"channels:manage",
|
|
55
|
+
"channels:read",
|
|
56
|
+
"channels:write.invites",
|
|
57
|
+
"channels:write.topic",
|
|
58
|
+
"chat:write"
|
|
54
59
|
]
|
|
55
60
|
}
|
|
56
61
|
},
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import NotImplementedException from "../../../Types/Exception/NotImplementedException";
|
|
2
2
|
import logger from "../Logger";
|
|
3
3
|
export default class WorkspaceBase {
|
|
4
|
+
static async joinChannel(_data) {
|
|
5
|
+
throw new NotImplementedException();
|
|
6
|
+
}
|
|
4
7
|
static async sendPayloadBlocksToChannel(_data) {
|
|
5
8
|
throw new NotImplementedException();
|
|
6
9
|
}
|
|
@@ -16,16 +19,17 @@ export default class WorkspaceBase {
|
|
|
16
19
|
}
|
|
17
20
|
static async inviteUsersToChannel(data) {
|
|
18
21
|
for (const userId of data.workspaceUserIds) {
|
|
19
|
-
await this.
|
|
22
|
+
await this.inviteUserToChannelByChannelName({
|
|
20
23
|
authToken: data.authToken,
|
|
21
24
|
channelName: data.channelName,
|
|
22
25
|
workspaceUserId: userId,
|
|
23
26
|
});
|
|
24
27
|
}
|
|
25
28
|
}
|
|
26
|
-
static async
|
|
29
|
+
static async inviteUserToChannelByChannelName(_data) {
|
|
27
30
|
throw new NotImplementedException();
|
|
28
31
|
}
|
|
32
|
+
static async inviteUserToChannelByChannelId(_data) { }
|
|
29
33
|
static async createChannelsIfDoesNotExist(_data) {
|
|
30
34
|
throw new NotImplementedException();
|
|
31
35
|
}
|
|
@@ -38,6 +42,9 @@ export default class WorkspaceBase {
|
|
|
38
42
|
static async getAllWorkspaceChannels(_data) {
|
|
39
43
|
throw new NotImplementedException();
|
|
40
44
|
}
|
|
45
|
+
static async getWorkspaceChannelFromChannelName(_data) {
|
|
46
|
+
throw new NotImplementedException();
|
|
47
|
+
}
|
|
41
48
|
static async createChannel(_data) {
|
|
42
49
|
throw new NotImplementedException();
|
|
43
50
|
}
|
|
@@ -86,5 +93,8 @@ export default class WorkspaceBase {
|
|
|
86
93
|
static async sendMessageToChannelViaIncomingWebhook(_data) {
|
|
87
94
|
throw new NotImplementedException();
|
|
88
95
|
}
|
|
96
|
+
static async isUserInChannel(_data) {
|
|
97
|
+
throw new NotImplementedException();
|
|
98
|
+
}
|
|
89
99
|
}
|
|
90
100
|
//# sourceMappingURL=WorkspaceBase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkspaceBase.js","sourceRoot":"","sources":["../../../../../Server/Utils/Workspace/WorkspaceBase.ts"],"names":[],"mappings":"AAGA,OAAO,uBAAuB,MAAM,kDAAkD,CAAC;AAUvF,OAAO,MAAM,MAAM,WAAW,CAAC;AAS/B,MAAM,CAAC,OAAO,OAAO,aAAa;IACzB,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,KAI9C;QACC,MAAM,IAAI,uBAAuB,EAAE,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAGzC;QACC,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,iCAAiC;aAC7D,YAAY,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,oBAAoB,CAAC;gBAC9B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,WAAW,EAAE,WAAW;gBACxB,gBAAgB,EACd,IAAI,CAAC,iCAAiC,CAAC,gBAAgB;aAC1D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAIxC;QACC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3C,MAAM,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"WorkspaceBase.js","sourceRoot":"","sources":["../../../../../Server/Utils/Workspace/WorkspaceBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -142,6 +142,16 @@ export default class BaseModelComponent {
|
|
|
142
142
|
iconProp: IconProp.Bolt,
|
|
143
143
|
tableName: model.tableName,
|
|
144
144
|
componentType: ComponentType.Trigger,
|
|
145
|
+
runWorkflowManuallyArguments: [
|
|
146
|
+
{
|
|
147
|
+
type: ComponentInputType.Text,
|
|
148
|
+
name: `${model.singularName} ID`,
|
|
149
|
+
description: `Please provide the ID of the ${model.singularName}, if you wish to run this workflow manually.`,
|
|
150
|
+
required: true,
|
|
151
|
+
id: "_id",
|
|
152
|
+
placeholder: `ID of the ${model.singularName}`,
|
|
153
|
+
},
|
|
154
|
+
],
|
|
145
155
|
arguments: [],
|
|
146
156
|
returnValues: [
|
|
147
157
|
{
|
|
@@ -263,6 +273,16 @@ export default class BaseModelComponent {
|
|
|
263
273
|
iconProp: IconProp.Bolt,
|
|
264
274
|
tableName: model.tableName,
|
|
265
275
|
componentType: ComponentType.Trigger,
|
|
276
|
+
runWorkflowManuallyArguments: [
|
|
277
|
+
{
|
|
278
|
+
type: ComponentInputType.Text,
|
|
279
|
+
name: `${model.singularName} ID`,
|
|
280
|
+
description: `Please provide the ID of the ${model.singularName}, if you wish to run this workflow manually.`,
|
|
281
|
+
required: true,
|
|
282
|
+
id: "_id",
|
|
283
|
+
placeholder: `ID of the ${model.singularName}`,
|
|
284
|
+
},
|
|
285
|
+
],
|
|
266
286
|
arguments: [
|
|
267
287
|
{
|
|
268
288
|
type: ComponentInputType.Select,
|
|
@@ -395,6 +415,16 @@ export default class BaseModelComponent {
|
|
|
395
415
|
iconProp: IconProp.Bolt,
|
|
396
416
|
tableName: model.tableName,
|
|
397
417
|
componentType: ComponentType.Trigger,
|
|
418
|
+
runWorkflowManuallyArguments: [
|
|
419
|
+
{
|
|
420
|
+
type: ComponentInputType.Text,
|
|
421
|
+
name: `${model.singularName} ID`,
|
|
422
|
+
description: `Please provide the ID of the ${model.singularName}, if you wish to run this workflow manually.`,
|
|
423
|
+
required: true,
|
|
424
|
+
id: "_id",
|
|
425
|
+
placeholder: `ID of the ${model.singularName}`,
|
|
426
|
+
},
|
|
427
|
+
],
|
|
398
428
|
arguments: [
|
|
399
429
|
{
|
|
400
430
|
type: ComponentInputType.Select,
|