-
Notifications
You must be signed in to change notification settings - Fork 1
/
bot.js
54 lines (43 loc) · 1.72 KB
/
bot.js
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
const moment = require('moment');
const SlackBot = require('slackbots');
const trimEnd = require('lodash/trimEnd');
const argv = require('./utils/argv');
const bot = new SlackBot({
token: argv.token,
name: 'LLQuiz Notifier',
});
const botStartupPromise = new Promise((resolve, reject) => {
bot.on('open', resolve);
bot.on('error', reject);
});
const CHANNEL = argv.channel;
const DATE_FORMAT = 'DD.MM.YYYY, HH:mm:ss';
function notifyNewCandidate(candidate) {
const startedAt = moment(candidate.result.startedAt);
const completedAt = moment(candidate.result.completedAt);
let message = '*Новая заявка на рассмотрение кандидата:*\n\n```\n';
message += `Идентификатор: ${candidate.id}\n`;
message += `Имя: ${candidate.name}\n`;
message += `Электронная почта: ${candidate.email}\n`;
message += `Skype: ${candidate.skype}\n`;
message += `Резюме: ${candidate.cv}\n`;
message += '```\n\n';
message += '*Результаты:*\n\n';
message += `Время начала тестирования: ${startedAt.format(DATE_FORMAT)}\n`
message += `Время окончания тестирования: ${completedAt.format(DATE_FORMAT)}\n`
message += `Ссылка на репозиторий: ${candidate.result.link}\n`;
message += `Ответы на вопросы теста: ${trimEnd(argv.url, '/')}/results/${candidate.id}`;
botStartupPromise
.then(() => {
bot.postMessage(CHANNEL, message, {
icon_emoji: ':bust_in_silhouette:',
});
})
.catch(error => {
});
}
module.exports = {
bot,
botStartupPromise,
notifyNewCandidate,
};