slack-client
Advanced tools
Comparing version 2.0.0-beta.7 to 2.0.0-beta.8
@@ -166,3 +166,8 @@ /** | ||
cb(jsonParseErr, jsonResponse); | ||
try { | ||
cb(jsonParseErr, jsonResponse); | ||
} catch (callbackErr) { | ||
// Never retry requests that fail in the callback | ||
_this.logger.error(callbackErr); | ||
} | ||
} | ||
@@ -169,0 +174,0 @@ |
@@ -12,3 +12,4 @@ /** | ||
AUTHENTICATED: 'authenticated', | ||
FAILED_AUTHENTICATION: 'failed_auth', | ||
DISCONNECT: 'disconnect', | ||
UNABLE_TO_RTM_START: 'unable_to_rtm_start', | ||
RTM_CONNECTION_OPENED: 'open', | ||
@@ -15,0 +16,0 @@ WS_OPENING: 'ws_opening', |
@@ -24,2 +24,7 @@ /** | ||
]; | ||
var UNRECOVERABLE_RTM_START_ERRS = [ | ||
'not_authed', | ||
'invalid_auth', | ||
'account_inactive', | ||
]; | ||
var CLIENT_EVENTS = require('../events/client').RTM; | ||
@@ -222,10 +227,17 @@ var BaseAPIClient = require('../client'); | ||
if (err || !data.url) { | ||
this.logger.log('verbose', 'failed to connect to the RTM API: ' + err); | ||
this.emit(CLIENT_EVENTS.FAILED_AUTHENTICATION, err); | ||
this.authenticated = false; | ||
if (this.autoReconnect) { | ||
this.reconnect(); | ||
this.emit(CLIENT_EVENTS.UNABLE_TO_RTM_START, err || data.error); | ||
// Any of these mean this client is unusable, so don't attempt to auto-reconnect | ||
if (data && contains(UNRECOVERABLE_RTM_START_ERRS, data.error)) { | ||
this.logger.error('unrecoverable failure connecting to the RTM API: ' + data.error); | ||
this.disconnect(); | ||
} else { | ||
this.logger.info('unable to RTM start, attempting reconnect: ' + err || data.error); | ||
this.authenticated = false; | ||
if (this.autoReconnect) { | ||
this.reconnect(); | ||
} | ||
} | ||
} else { | ||
this.logger.log('verbose', 'rtm.start successful, attempting to open websocket URL'); | ||
this.logger.verbose('rtm.start successful, attempting to open websocket URL'); | ||
this.authenticated = true; | ||
@@ -284,2 +296,3 @@ this.activeUserId = data.self.id; | ||
RTMClient.prototype.disconnect = function disconnect() { | ||
this.emit(CLIENT_EVENTS.DISCONNECT); | ||
this.autoReconnect = false; | ||
@@ -477,2 +490,17 @@ this._safeDisconnect(); | ||
/** | ||
* Helper for sending a simple message to a channel|group|DM etc via the RTM API. | ||
* @param {string} text The text of the messsage to send. | ||
* @param {string} channelId The id of the channel|group|DM to send this message to. | ||
* @param {Function=} optCb | ||
*/ | ||
RTMClient.prototype.sendMessage = function sendMessage(text, channelId, optCb) { | ||
this.send({ | ||
text: text, | ||
channel: channelId, | ||
type: RTM_API_EVENTS.MESSAGE, | ||
}, optCb); | ||
}; | ||
/** | ||
* Sends a message over the websocket to the server. | ||
@@ -479,0 +507,0 @@ * @param {*} message The message to send back to the server. |
{ | ||
"name": "slack-client", | ||
"version": "2.0.0-beta.7", | ||
"version": "2.0.0-beta.8", | ||
"description": "A library for creating a full Slack client", | ||
@@ -5,0 +5,0 @@ "main": "./index", |
@@ -24,3 +24,3 @@ # Node.js Slack Client Library | ||
```bash | ||
npm install slack-client@2.0.0-beta.7 --save | ||
npm install slack-client@2.0.0-beta.8 --save | ||
``` | ||
@@ -27,0 +27,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
198324
5499