From 49b51e478fa75b8d5254662de3265edcf8906004 Mon Sep 17 00:00:00 2001 From: Cheng-Han, Wu Date: Wed, 20 Apr 2016 18:03:55 +0800 Subject: Refactor server with Sequelize ORM, refactor server configs, now will show note status (created or updated) and support docs (note alias) --- lib/user.js | 110 ------------------------------------------------------------ 1 file changed, 110 deletions(-) delete mode 100644 lib/user.js (limited to 'lib/user.js') 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 -- cgit v1.2.3