people.js: Add methods for user_ids_string/emails_string.

Added:
    * people.user_ids_string_to_emails_string
    * people.emails_strings_to_user_ids_string
This commit is contained in:
Steve Howell
2016-11-15 13:55:37 -08:00
committed by Tim Abbott
parent 7750d43d23
commit 1783879108
2 changed files with 54 additions and 0 deletions

View File

@@ -227,3 +227,25 @@ var _ = global._;
people.remove(ashton);
people.remove(linus);
}());
(function test_multi_user_methods() {
var emp401 = {
email: 'emp401@example.com',
user_id: 401,
full_name: 'whatever 401'
};
var emp402 = {
email: 'emp402@example.com',
user_id: 402,
full_name: 'whatever 402'
};
people.add_in_realm(emp401);
people.add_in_realm(emp402);
var emails_string = people.user_ids_string_to_emails_string('401,402');
assert.equal(emails_string, 'emp401@example.com,emp402@example.com');
var user_ids_string = people.emails_strings_to_user_ids_string(emails_string);
assert.equal(user_ids_string, '401,402');
}());

View File

@@ -35,6 +35,38 @@ exports.get_user_id = function (email) {
return user_id;
};
exports.user_ids_string_to_emails_string = function (user_ids_string) {
var user_ids = user_ids_string.split(',');
var emails = _.map(user_ids, function (user_id) {
var person = people_by_user_id_dict.get(user_id);
if (person) {
return person.email;
}
});
if (!_.all(emails)) {
blueslip.error('Unknown user ids: ' + user_ids_string);
return;
}
return emails.join(',');
};
exports.emails_strings_to_user_ids_string = function (emails_string) {
var emails = emails_string.split(',');
var user_ids = _.map(emails, function (email) {
var person = people_dict.get(email);
if (person) {
return person.user_id;
}
});
if (!_.all(user_ids)) {
blueslip.error('Unknown emails: ' + emails_string);
return;
}
return user_ids.join(',');
};
exports.realm_get = function realm_get(email) {
return realm_people_dict.get(email);
};