mirror of
https://github.com/status-im/burnchart.git
synced 2025-02-03 06:13:40 +00:00
closes #96
This commit is contained in:
parent
3ecac58c00
commit
07666554ac
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "burnchart",
|
||||
"version": "2.0.3",
|
||||
"version": "2.0.4",
|
||||
"description": "GitHub Burndown Chart as a Service",
|
||||
"author": "Radek Stepan <dev@radekstepan.com> (http://radekstepan.com)",
|
||||
"license": "AGPL-3.0",
|
||||
|
@ -4,8 +4,9 @@ superagent = require 'superagent'
|
||||
# Lodash mixins.
|
||||
require '../../utils/mixins.coffee'
|
||||
|
||||
config = require '../../models/config.coffee'
|
||||
user = require '../../models/user.coffee'
|
||||
config = require '../../models/config.coffee'
|
||||
user = require '../../models/user.coffee'
|
||||
mediator = require '../mediator.coffee'
|
||||
|
||||
# Custom JSON parser.
|
||||
superagent.parse =
|
||||
@ -107,11 +108,7 @@ request = ({ protocol, host, path, query, headers }, cb) ->
|
||||
response = (err, data, cb) ->
|
||||
return cb error err if err
|
||||
# 2xx?
|
||||
if data.statusType isnt 2
|
||||
# Do we have a message from GitHub?
|
||||
return cb data.body.message if data?.body?.message?
|
||||
# Use SA one.
|
||||
return cb data.error.message
|
||||
return cb error data.body if data.statusType isnt 2
|
||||
# All good.
|
||||
cb null, data.body
|
||||
|
||||
@ -153,16 +150,22 @@ user.observe 'ready', (val) ->
|
||||
error = (err) ->
|
||||
switch
|
||||
when _.isString err
|
||||
message = err
|
||||
text = err
|
||||
when _.isArray err
|
||||
message = err[1]
|
||||
text = err[1]
|
||||
when _.isObject(err) and _.isString(err.message)
|
||||
message = err.message
|
||||
text = err.message
|
||||
|
||||
unless message
|
||||
unless text
|
||||
try
|
||||
message = JSON.stringify err
|
||||
text = JSON.stringify err
|
||||
catch
|
||||
message = do err.toString
|
||||
text = do err.toString
|
||||
|
||||
message
|
||||
# API rate limit exceeded? Flash a message to that effect.
|
||||
# https://developer.github.com/v3/#rate-limiting
|
||||
if /API rate limit exceeded/.test text
|
||||
type = 'warn'
|
||||
mediator.fire '!app/notify', { type, text }
|
||||
|
||||
text
|
@ -36,6 +36,9 @@ user.set 'ready', yes
|
||||
# Get config so we can fudge timeout.
|
||||
config = require '../src/models/config.coffee'
|
||||
|
||||
# Global mediator.
|
||||
mediator = require '../src/modules/mediator.coffee'
|
||||
|
||||
module.exports =
|
||||
|
||||
'request - all milestones (ok)': (done) ->
|
||||
@ -56,6 +59,29 @@ module.exports =
|
||||
assert.deepEqual data, [ null ]
|
||||
do done
|
||||
|
||||
'request - all milestones (403)': (done) ->
|
||||
superagent.response =
|
||||
'statusType': 4
|
||||
'error': no
|
||||
'body':
|
||||
'message': 'API rate limit exceeded'
|
||||
|
||||
owner = 'radekstepan'
|
||||
name = 'burnchart'
|
||||
milestone = 0
|
||||
|
||||
notified = no
|
||||
mediator.on '!app/notify', ->
|
||||
notified = yes
|
||||
|
||||
request.oneMilestone { owner, name, milestone }, (err) ->
|
||||
assert err, 'Error'
|
||||
assert.isTrue notified
|
||||
|
||||
mediator.off '!app/notify'
|
||||
|
||||
do done
|
||||
|
||||
'request - one milestone (ok)': (done) ->
|
||||
superagent.response =
|
||||
'statusType': 2
|
||||
|
Loading…
x
Reference in New Issue
Block a user