3
0
mirror of https://github.com/reality/dbot.git synced 2024-12-02 17:09:29 +01:00
dbot/modules/users/api.js

72 lines
2.2 KiB
JavaScript
Raw Normal View History

2014-09-04 11:36:57 +02:00
var _ = require('underscore')._;
var api = function(dbot) {
2014-09-04 12:15:52 +02:00
var api = {
2014-09-04 11:36:57 +02:00
// Retrieve a user record given a server and nickname
'resolveUser': function(server, nick, callback) {
var id = nick + '.' + server;
this.api.getUser(id, function(err, result) {
if(!err) {
2014-09-04 11:36:57 +02:00
callback(null, result);
} else {
this.db.read('user_aliases', id, function(err, result) {
if(!err) {
this.api.getUser(result.user, callback);
} else {
callback(true, null);
}
}.bind(this));
}
2014-07-07 13:06:38 +02:00
}.bind(this));
},
2014-09-04 11:36:57 +02:00
// Retrive a user record given its ID
'getUser': function(id, callback) {
this.db.read('users', id, function(err, result) {
if(!err) {
2014-09-04 11:36:57 +02:00
callback(null, result);
} else {
callback(true, null);
}
});
2013-01-22 01:24:12 +01:00
},
2014-09-04 11:36:57 +02:00
// Retrieve user aliases given a user ID
'getUserAliases': function(id, callback) {
var aliases = [];
this.db.search('user_aliases', { 'user': id }, function(result) {
aliases.push(result.alias);
}, function(err) {
if(!err) {
2014-09-04 11:36:57 +02:00
callback(null, aliases);
} else {
callback(true, null);
}
});
},
2014-09-04 11:36:57 +02:00
// Retrieve a channel record given a server and a channel name
'resolveChannel': function(server, channel, callback) {
var id = channel + '.' + server;
this.api.getChannel(id, callback);
},
2014-09-04 11:36:57 +02:00
// Retrieve a channel record given its ID
'getChannel': function(id, callback) {
this.db.read('channels', id, function(err, result) {
if(!err) {
callback(null, result);
} else {
2014-09-04 11:36:57 +02:00
callback(true, null);
}
});
}
};
2014-09-04 12:15:52 +02:00
return api;
};
exports.fetch = function(dbot) {
return api(dbot);
};