summaryrefslogtreecommitdiff
path: root/lib/user.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lib/user.js110
1 files changed, 0 insertions, 110 deletions
diff --git a/lib/user.js b/lib/user.js
deleted file mode 100644
index 639d66c3..00000000
--- a/lib/user.js
+++ /dev/null
@@ -1,110 +0,0 @@
-//user
-//external modules
-var mongoose = require('mongoose');
-var md5 = require("md5");
-
-//core
-var config = require("../config.js");
-var logger = require("./logger.js");
-
-// create a user model
-var model = mongoose.model('user', {
- id: String,
- profile: String,
- history: String,
- created: Date
-});
-
-//public
-var user = {
- model: model,
- findUser: findUser,
- newUser: newUser,
- findOrNewUser: findOrNewUser,
- getUserCount: getUserCount,
- parsePhotoByProfile: parsePhotoByProfile
-};
-
-function parsePhotoByProfile(profile) {
- var photo = null;
- switch (profile.provider) {
- case "facebook":
- photo = 'https://graph.facebook.com/' + profile.id + '/picture';
- break;
- case "twitter":
- photo = profile.photos[0].value;
- break;
- case "github":
- photo = 'https://avatars.githubusercontent.com/u/' + profile.id + '?s=48';
- break;
- case "dropbox":
- //no image api provided, use gravatar
- photo = 'https://www.gravatar.com/avatar/' + md5(profile.emails[0].value);
- break;
- }
- return photo;
-}
-
-function getUserCount(callback) {
- model.count(function(err, count){
- if(err) callback(err, null);
- else callback(null, count);
- });
-}
-
-function findUser(id, callback) {
- var rule = {};
- var checkForHexRegExp = new RegExp("^[0-9a-fA-F]{24}$");
- if (checkForHexRegExp.test(id))
- rule._id = id;
- else
- rule.id = id;
- model.findOne(rule, function (err, user) {
- if (err) {
- logger.error('find user failed: ' + err);
- callback(err, null);
- }
- if (!err && user) {
- callback(null, user);
- } else {
- logger.error('find user failed: ' + err);
- callback(err, null);
- };
- });
-}
-
-function newUser(id, profile, callback) {
- var user = new model({
- id: id,
- profile: JSON.stringify(profile),
- created: Date.now()
- });
- user.save(function (err) {
- if (err) {
- logger.error('new user failed: ' + err);
- callback(err, null);
- } else {
- logger.info("new user success: " + user.id);
- callback(null, user);
- };
- });
-}
-
-function findOrNewUser(id, profile, callback) {
- findUser(id, function(err, user) {
- if(err || !user) {
- newUser(id, profile, function(err, user) {
- if(err) {
- logger.error('find or new user failed: ' + err);
- callback(err, null);
- } else {
- callback(null, user);
- }
- });
- } else {
- callback(null, user);
- }
- });
-}
-
-module.exports = user; \ No newline at end of file