js/storing-data/send-report.js (35 lines of code) (raw):
var entities = require('@jetbrains/youtrack-scripting-api/entities');
exports.rule = entities.Issue.onSchedule({
title: 'Reporter',
search: '#WS-279',
cron: '0 0 18 LW * ?',
action: function(ctx) {
var data = ctx.issue.description;
var map = JSON.parse(data);
if (!map) {
map = {};
}
var month = new Date().getMonth();
var report = '';
if (!map[month]) {
report = 'No changes were made in previous month.';
} else {
var max = 0;
for (var login in map[month]) {
var line = 'User ' + login + ' made ' + map[month][login] + ' changes.\n';
report += line;
max = Math.max(max, map[month][login]);
}
var winners = [];
for (login in map[month]) {
if (map[month][login] === max) {
winners.push(login);
}
}
var winnerLine = winners.length === 1 ? 'The winner is ' + login + '.\n' :
'The winners are ' + winners.join(', ') + '.\n';
report += winnerLine;
}
ctx.issue.project.leader.notify('Activity report', report);
}
});