-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwebhookIO.js
More file actions
71 lines (60 loc) · 2.14 KB
/
webhookIO.js
File metadata and controls
71 lines (60 loc) · 2.14 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
67
68
69
70
71
'use strict';
//
// webhookIO.js
// Post messages to Slack
//
// VDJServer Community Data Portal
// Statistics API service
// https://vdjserver.org
//
// Copyright (C) 2021 The University of Texas Southwestern Medical Center
//
// Author: Scott Christley <scott.christley@utsouthwestern.edu>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published
// by the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//
var webhookIO = {};
module.exports = webhookIO;
var tapisSettings = require('./tapisSettings');
var tapisIO = tapisSettings.get_default_tapis();
var config = tapisSettings.config;
var moment = require('moment-timezone');
const axios = require('axios');
webhookIO.postToSlack = async function(eventMessage) {
if (!process.env.SLACK_WEBHOOK_URL) return;
var postData = {
text: 'Event: ' + eventMessage + '\n'
+ 'Environment: ' + tapisSettings.vdjBackbone + '\n'
+ 'Timestamp: ' + moment().tz('America/Chicago').format()
,
username: 'VDJ Telemetry Bot',
};
var requestSettings = {
url: process.env.SLACK_WEBHOOK_URL,
method: 'POST',
data: postData,
headers: {
'Content-Type': 'application/json'
}
};
var msg = null;
var response = await axios(requestSettings)
.catch(function(error) {
msg = 'Failed to send slack message: ' + JSON.stringify(error);
console.error(msg);
// ignore error and continue
});
if (!msg) console.log('Posted slack webhook for message: "' + eventMessage + '"');
return Promise.resolve();
};