Socket
Socket
Sign inDemoInstall

@slack/client

Package Overview
Dependencies
Maintainers
4
Versions
57
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@slack/client - npm Package Compare versions

Comparing version 3.0.0 to 3.1.0

examples/.eslintrc

7

CHANGELOG.md

@@ -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 @@

28

examples/example-rtm-client-datastore.js

@@ -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 () {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc