-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
66 lines (55 loc) · 1.58 KB
/
Copy pathapp.js
File metadata and controls
66 lines (55 loc) · 1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
require('dotenv').config();
const { App , LogLevel } = require('@slack/bolt');
const {pipelinesData}= require('./jenkinsFetcher')
const {buildMessage} = require('./messageBuilder')
const {header} = require('./messageBlocks')
//console.log(pipelinesData());
const app = new App({
token: process.env.SLACK_BOT_TOKEN,
signingSecret: process.env.SLACK_SIGNING_SECRET,
//logLevel: LogLevel.DEBUG
});
async function sendPipelineMessage(){
const data = await pipelinesData();
const message = await buildMessage(data);
return sendMessageToChannel(message);
}
async function sendMessageToChannel(blocks, channel){
if(!channel){
channel = process.env.SLACK_BOT_CHANNEL;
}
return await app.client.chat.postMessage({
token: process.env.SLACK_BOT_TOKEN,
channel,
blocks,
})
}
async function updateMessage(ts, blocks, channel){
if(!channel){
channel = process.env.SLACK_BOT_CHANNEL;
}
return await app.client.chat.update({
// The token you used to initialize your app
token: process.env.SLACK_BOT_TOKEN,
channel,
ts,
blocks
});
}
async function sendAndUpdateMessage(message){
let counter = 0;
let sentMessage = await sendMessageToChannel([... message, header(`${counter++}`)]);
async function updateThisMessage() {
sentMessage = await updateMessage(sentMessage.ts,
[... message, header(`${counter++}`)]
)
}
setInterval(updateThisMessage, 3000);
return;
}
sendPipelineMessage();
//sendAndUpdateMessage([header('Jenkins')]);
(async () => {
await app.start(process.env.PORT || 3000);
console.log('App is running');
})();