@slack/client
Advanced tools
Comparing version 3.0.0 to 3.1.0
@@ -0,1 +1,8 @@ | ||
### v3.1.0 (2016-05-01) | ||
* Updates the [`lib/clients/web/facets/index.js`](/lib/clients/web/facets/index.js) to reference the new facets added in the 3.0.0 update, thanks @ekmartin | ||
* Adds in a [`reminders`](/lib/clients/web/facets/reminders.js) client facet | ||
* MemoryDataStore.getUserByEmail now looks at the correct part of the user object for the email, thanks @SimantovYousoufov | ||
* Adds docs and examples for the data store and sending DMs, thanks @PaulAsjes! | ||
### v3.0.0 (2016-04-24) | ||
@@ -2,0 +9,0 @@ |
@@ -1,13 +0,11 @@ | ||
var RtmClient = require('@slack/client').RtmClient, | ||
CLIENT_EVENTS = require('@slack/client').CLIENT_EVENTS, | ||
RTM_EVENTS = require('@slack/client').RTM_EVENTS, | ||
MemoryDataStore = require('@slack/client').MemoryDataStore; | ||
var RtmClient = require('@slack/client').RtmClient; | ||
var CLIENT_EVENTS = require('@slack/client').CLIENT_EVENTS; | ||
var RTM_EVENTS = require('@slack/client').RTM_EVENTS; | ||
var MemoryDataStore = require('@slack/client').MemoryDataStore; | ||
var token = process.env.SLACK_API_TOKEN || ''; | ||
var rtm = new RtmClient(token, { | ||
logLevel: 'info', // check this out for more on logger: https://github.com/winstonjs/winston | ||
dataStore: new MemoryDataStore({}) // pass on a new instance of MemoryDataStore type to cache information | ||
var rtm = new RtmClient(token, { | ||
logLevel: 'info', // check this out for more on logger: https://github.com/winstonjs/winston | ||
dataStore: new MemoryDataStore({}) // pass a new MemoryDataStore instance to cache information | ||
}); | ||
@@ -17,8 +15,12 @@ | ||
rtm.on(CLIENT_EVENTS.RTM.AUTHENTICATED, function (rtmStartData) { | ||
console.log('RTM client authenticated!'); | ||
rtm.on(CLIENT_EVENTS.RTM.AUTHENTICATED, function handleRTMAuthenticated() { | ||
console.log('RTM client authenticated!'); | ||
}); | ||
rtm.on(RTM_EVENTS.MESSAGE, function handleRtmMessage(message) { | ||
console.log('User %s posted a message in %s channel', rtm.dataStore.getUserById(message.user).name, rtm.dataStore.getChannelGroupOrDMById(message.channel).name); | ||
console.log( | ||
'User %s posted a message in %s channel', | ||
rtm.dataStore.getUserById(message.user).name, | ||
rtm.dataStore.getChannelGroupOrDMById(message.channel).name | ||
); | ||
}); | ||
@@ -32,2 +34,2 @@ | ||
console.log('Reaction removed:', reaction); | ||
}); | ||
}); |
@@ -7,5 +7,8 @@ module.exports = { | ||
DmFacet: require('./dm.js'), | ||
DndFacet: require('./dnd.js'), | ||
EmojiFacet: require('./emoji.js'), | ||
FilesFacet: require('./files.js'), | ||
FilesCommentsFacet: require('./files.comments.js'), | ||
GroupsFacet: require('./groups.js'), | ||
MpimFacet: require('./mpim.js'), | ||
OauthFacet: require('./oauth.js'), | ||
@@ -15,2 +18,3 @@ PinsFacet: require('./pins.js'), | ||
ReactionsFacet: require('./reactions.js'), | ||
RemindersFacet: require('./reminders.js'), | ||
RtmFacet: require('./rtm.js'), | ||
@@ -20,3 +24,5 @@ SearchFacet: require('./search.js'), | ||
TeamFacet: require('./team.js'), | ||
UsergroupsFacet: require('./usergroups.js'), | ||
UsergroupsUsersFacet: require('./usergroups.users.js'), | ||
UsersFacet: require('./users.js') | ||
}; |
@@ -91,3 +91,3 @@ /** | ||
SlackMemoryDataStore.prototype.getUserByEmail = function getUserByEmail(email) { | ||
return find(this.users, 'email', email); | ||
return find(this.users, { profile: { email: email } }); | ||
}; | ||
@@ -94,0 +94,0 @@ |
{ | ||
"name": "@slack/client", | ||
"version": "3.0.0", | ||
"version": "3.1.0", | ||
"description": "A library for creating a Slack client", | ||
@@ -8,3 +8,4 @@ "main": "./index", | ||
"lint": "eslint . --ignore-path .gitignore", | ||
"test": "mocha --recursive --reporter spec test", | ||
"mocha": "mocha --recursive --reporter spec test", | ||
"test": "npm run lint && npm run mocha", | ||
"cover": "istanbul cover --report lcovonly _mocha -- --recursive", | ||
@@ -11,0 +12,0 @@ "coveralls": "npm run cover && istanbul-coveralls" |
var expect = require('chai').expect; | ||
var fs = require('fs'); | ||
var path = require('path'); | ||
var lodash = require('lodash'); | ||
@@ -16,2 +18,25 @@ var nock = require('nock'); | ||
it('should add all available facets', function () { | ||
var client = new WebAPIClient('test-token'); | ||
var facets = fs | ||
.readdirSync(path.resolve('lib', 'clients', 'web', 'facets')) | ||
.filter(function (file) { | ||
return /\.js$/.test(file) && file !== 'index.js'; | ||
}) | ||
.map(function (file) { | ||
return require('../../../lib/clients/web/facets/' + file); | ||
}); | ||
// Check that all facet files have been registered: | ||
facets.forEach(function (Facet) { | ||
var name = new Facet().name; | ||
// The 'im' facet is aliased to dm: | ||
if (name === 'im') { | ||
expect(client[name].name).to.equal('dm'); | ||
} else { | ||
expect(client[name].name).to.equal(name); | ||
} | ||
}); | ||
}); | ||
it('should accept supplied defaults when present', function () { | ||
@@ -18,0 +43,0 @@ var opts = { |
@@ -60,2 +60,28 @@ var expect = require('chai').expect; | ||
describe('#getUserByEmail()', function () { | ||
var dataStore = getMemoryDataStore(); | ||
it('should get a user by email', function () { | ||
var user = dataStore.getUserByEmail('leah+slack-api-test-alice@slack-corp.com'); | ||
expect(user.id).to.equal('U0CJ5PC7L'); | ||
}); | ||
it('should return undefined if no users with email is not found', function () { | ||
var user = dataStore.getUserByEmail('NOT-leah+slack-api-test-bob@slack-corp.com'); | ||
expect(user).to.equal(undefined); | ||
}); | ||
}); | ||
describe('#getUserByName()', function () { | ||
var dataStore = getMemoryDataStore(); | ||
it('should get a user by name', function () { | ||
expect(dataStore.getUserByName('alice').id).to.equal('U0CJ5PC7L'); | ||
}); | ||
it('should return undefined if no users with name is not found', function () { | ||
expect(dataStore.getUserByEmail('NOTalice')).to.equal(undefined); | ||
}); | ||
}); | ||
describe('#clear()', function () { | ||
@@ -62,0 +88,0 @@ it('should re-set the objects when clear() is called', function () { |
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
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
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
251719
104
6529
7