function(response, body) { try { var data = JSON.parse(body) } catch (e) { return callback(errors.external('GitHubError: GitHub responded with an unexpected format')) } var message = data.message var identifier = data.id errors .with(callback) .when(message) .external('GitHubError: GitHub says: `%s`', message) .when(!identifier) .external('GitHubError: GitHub responded with an unexpected response') .success(function() { var args = { provider: 'gh', identifier: identifier, extra: { id: identifier, name: data.name, login: data.login, }, } return callback(null, args) }) }
function(response, body) { try { var data = JSON.parse(body) } catch(e) { return callback(errors.external('GooglePlusError: Google Plus responded with an unexpected format')) } if (data.error) { // Example error response // { // "error": { // "errors": [ // { // "domain": "usageLimits", // "reason": "accessNotConfigured", // "message": "Access Not Configured" // } // ], // "code": 403, // "message": "Access Not Configured" // } // } var message = data.error.message var code = data.error.code if (message && code) { message += ' (code: '+code+')' } if (message) { return callback(errors.external('GooglePlusError: Google said `%s`', message)) } else { return callback(errors.external('GooglePlusError: Google Plus responded with an unknown error')) } } if (!data.id) { return callback(errors.external('GooglePlusError: Google Plus responded with an unexpected response')) } var args = { identifier: data.id, extra: { id: data.id, name: data.displayName, image: data.image && data.image.url, }, } return callback(null, args) }