From 40740b925ac07997791c04f0f561a95f1a21c8bc Mon Sep 17 00:00:00 2001 From: Carlos Perez Date: Fri, 18 Dec 2015 21:10:19 -0600 Subject: [PATCH] Proper handling of request to bithound badge api. --- server.js | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/server.js b/server.js index 7283851a8c..fdd36e106d 100644 --- a/server.js +++ b/server.js @@ -4676,23 +4676,20 @@ cache(function(data, match, sendBadge, request) { // bitHound integration camp.route(/^\/bithound\/(code\/|dependencies\/|devDependencies\/)?(.+?)\.(svg|png|gif|jpg|json)$/, cache(function(data, match, sendBadge, request) { - var type = match[1]; + var type = match[1].slice(0, -1); var userRepo = match[2]; // eg, `github/rexxars/sse-channel`. var format = match[3]; - var url = 'https://www.bithound.io/api/' + userRepo + '/badge/' + type; + var apiUrl = 'https://www.bithound.io/api/' + userRepo + '/badge/' + type; var badgeData = getBadgeData(type === 'devDependencies' ? 'dev dependencies' : type, data); - request(url, function(err, res) { - if (err != null) { - badgeData.text[1] = 'inaccessible'; - sendBadge(format, badgeData); - return; - } + request(apiUrl, { headers: { 'Accept': 'application/json' } }, function(err, res, buffer) { try { - badgeData.text[1] = res.label; + var data = JSON.parse(buffer); + badgeData.text[1] = data.label; badgeData.logo = logos['bithound']; badgeData.logoWidth = 15; - badgeData.colorscheme = res.color; + badgeData.colorscheme = null; + badgeData.colorB = '#' + data.color; sendBadge(format, badgeData); } catch(e) {