slack-client
Version:
A library for creating a Slack client
53 lines (40 loc) • 1.6 kB
JavaScript
/**
* Handlers for all RTM `group_` events.
*/
var zipObject = require('lodash').zipObject;
var RTM_EVENTS = require('../../clients/events/rtm').EVENTS;
var baseChannelHandlers = require('./base-channel');
var helpers = require('./helpers');
var models = require('../../models');
/** {@link https://api.slack.com/events/group_joined|group_joined} */
var handleGroupJoined = function handleGroupJoined(dataStore, message) {
var group = new models.Group(message.channel);
dataStore.setGroup(group);
};
/**
* {@link https://api.slack.com/events/group_left|group_left}
*/
var handleGroupLeave = function handleGroupLeave(activeUserId, activeTeamId, dataStore, message) {
var group;
baseChannelHandlers.handleLeave(activeUserId, activeTeamId, dataStore, message);
group = dataStore.getGroupById(message.channel);
if (group) {
// TODO(leah): Maybe this should remove the group?
if (group.members.length === 0) {
group.is_archived = true;
}
dataStore.setGroup(group);
}
};
var handlers = [
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
[ ],
];
module.exports = zipObject(handlers);