Files
shields/lib/teamcity-badge-helpers.js
Paul Melnikow c62534b5fd Move remaining helper functions to lib/ (#1109)
- Clear the regular update cache between unit tests
2017-10-01 22:08:30 -04:00

37 lines
1.1 KiB
JavaScript

'use strict';
const { makeBadgeData: getBadgeData } = require('./badge-data');
function teamcityBadge(url, buildId, advanced, format, data, sendBadge, request) {
const apiUrl = url + '/app/rest/builds/buildType:(id:' + buildId + ')?guest=1';
const badgeData = getBadgeData('build', data);
request(apiUrl, { headers: { 'Accept': 'application/json' } }, function(err, res, buffer) {
if (err != null) {
badgeData.text[1] = 'inaccessible';
sendBadge(format, badgeData);
return;
}
try {
const data = JSON.parse(buffer);
if (advanced)
badgeData.text[1] = (data.statusText || data.status || '').toLowerCase();
else
badgeData.text[1] = (data.status || '').toLowerCase();
if (data.status === 'SUCCESS') {
badgeData.colorscheme = 'brightgreen';
badgeData.text[1] = 'passing';
} else {
badgeData.colorscheme = 'red';
}
sendBadge(format, badgeData);
} catch(e) {
badgeData.text[1] = 'invalid';
sendBadge(format, badgeData);
}
});
}
module.exports = {
teamcityBadge
};