diff options
| author | Wu Cheng-Han | 2015-05-04 15:53:29 +0800 | 
|---|---|---|
| committer | Wu Cheng-Han | 2015-05-04 15:53:29 +0800 | 
| commit | 4b0ca55eb79e963523eb6c8197825e9e8ae904e2 (patch) | |
| tree | 574f3923af77b37b41dbf1b00bcd7827ef724a28 /lib/user.js | |
| parent | 61eb11d23c65c9e5c493c67d055f785cbec139e2 (diff) | |
First commit, version 0.2.7
Diffstat (limited to 'lib/user.js')
| -rw-r--r-- | lib/user.js | 83 | 
1 files changed, 83 insertions, 0 deletions
diff --git a/lib/user.js b/lib/user.js new file mode 100644 index 00000000..1d7f11d2 --- /dev/null +++ b/lib/user.js @@ -0,0 +1,83 @@ +//user +//external modules +var mongoose = require('mongoose'); + +//core +var config = require("../config.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 +}; + +function getUserCount(callback) { +    model.count(function(err, count){ +        if(err) callback(err, null); +        else callback(null, count); +    }); +} + +function findUser(id, callback) { +    model.findOne({ +        id: id +    }, function (err, user) { +        if (err) { +            console.log('find user failed: ' + err); +            callback(err, null); +        } +        if (!err && user != null) { +            callback(null, user); +        } else { +            console.log('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) { +            console.log('new user failed: ' + err); +            callback(err, null); +        } else { +            console.log("new user success: " + user.id); +            callback(null, user); +        }; +    }); +} + +function findOrNewUser(id, profile, callback) { +    findUser(id, function(err, user) { +        if(err || user == null) { +            newUser(id, profile, function(err, user) { +                if(err) { +                    console.log('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  | 
