mirror of
https://github.com/zulip/zulip.git
synced 2025-11-05 06:23:38 +00:00
This is preparation for enabling an eslint indentation configuration. 90% of these changes are just fixes for indentation errors that have snuck into the codebase over the years; the others are more significant reformatting to make eslint happy (that are not otherwise actually improvements). The one area that we do not attempt to work on here is the "switch/case" indentation.
96 lines
2.9 KiB
JavaScript
96 lines
2.9 KiB
JavaScript
/* eslint indent: "off" */
|
|
|
|
var bot_data = (function () {
|
|
var exports = {};
|
|
|
|
var bots = {};
|
|
var bot_fields = ['api_key', 'avatar_url', 'default_all_public_streams',
|
|
'default_events_register_stream', 'default_sending_stream',
|
|
'email', 'full_name', 'is_active', 'owner', 'bot_type', 'user_id'];
|
|
var services = {};
|
|
var services_fields = ['base_url', 'interface',
|
|
'config_data', 'service_name'];
|
|
|
|
var send_change_event = _.debounce(function () {
|
|
$(document).trigger('zulip.bot_data_changed');
|
|
}, 50);
|
|
|
|
var set_can_admin = function bot_data__set_can_admin(bot) {
|
|
if (page_params.is_admin) {
|
|
bot.can_admin = true;
|
|
} else if (bot.owner !== undefined && people.is_current_user(bot.owner)) {
|
|
bot.can_admin = true;
|
|
} else {
|
|
bot.can_admin = false;
|
|
}
|
|
};
|
|
|
|
exports.add = function bot_data__add(bot) {
|
|
var clean_bot = _.pick(bot, bot_fields);
|
|
bots[bot.user_id] = clean_bot;
|
|
set_can_admin(clean_bot);
|
|
var clean_services = _.map(bot.services, function (service) {
|
|
return _.pick(service, services_fields);
|
|
});
|
|
services[bot.user_id] = clean_services;
|
|
|
|
send_change_event();
|
|
};
|
|
|
|
exports.deactivate = function bot_data__deactivate(bot_id) {
|
|
bots[bot_id].is_active = false;
|
|
send_change_event();
|
|
};
|
|
|
|
exports.delete = function bot_data__delete(bot_id) {
|
|
delete bots[bot_id];
|
|
delete services[bot_id];
|
|
send_change_event();
|
|
};
|
|
|
|
exports.update = function bot_data__update(bot_id, bot_update) {
|
|
var bot = bots[bot_id];
|
|
_.extend(bot, _.pick(bot_update, bot_fields));
|
|
set_can_admin(bot);
|
|
|
|
// We currently only support one service per bot.
|
|
var service = services[bot_id][0];
|
|
if (typeof bot_update.services !== 'undefined' && bot_update.services.length > 0) {
|
|
_.extend(service, _.pick(bot_update.services[0], services_fields));
|
|
}
|
|
send_change_event();
|
|
};
|
|
|
|
exports.get_all_bots_for_current_user = function bots_data__get_editable() {
|
|
return _.filter(bots, function (bot) {
|
|
return people.is_current_user(bot.owner);
|
|
});
|
|
};
|
|
|
|
exports.get_editable = function bots_data__get_editable() {
|
|
return _.filter(bots, function (bot) {
|
|
return bot.is_active && people.is_current_user(bot.owner);
|
|
});
|
|
};
|
|
|
|
exports.get = function bot_data__get(bot_id) {
|
|
return bots[bot_id];
|
|
};
|
|
|
|
exports.get_services = function bot_data__get_services(bot_id) {
|
|
return services[bot_id];
|
|
};
|
|
|
|
exports.initialize = function () {
|
|
_.each(page_params.realm_bots, function (bot) {
|
|
exports.add(bot);
|
|
});
|
|
delete page_params.realm_bots;
|
|
};
|
|
|
|
return exports;
|
|
}());
|
|
if (typeof module !== 'undefined') {
|
|
module.exports = bot_data;
|
|
}
|