Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //the export of the entry to the app is as follows:
- module.exports = function(schema, options){
- ...
- }
- options.findByUsername = options.findByUsername || function(model, queryParameters) { return model.findOne(queryParameters); }
- schema.statics.register = function (user, password, callback) {
- if (!(user instanceof this)) {
- user = new this(user);
- }
- if (!user.get(options.usernameField)) {
- return callback(setMessages(errors.missingUsername, 'error', 406));
- }
- let self = this;
- self.findByUsername(user.get(options.usernameField), true, function(err, existingUser) {
- if (err) { return callback(setMessages(errors.unknown, 'error', 400)); }
- if (existingUser) {
- return callback(setMessages(errors.userExists, 'error', 409));
- }
- user.setPassword(password, (setPasswordErr, user) => {
- if (setPasswordErr) { return callback(setPasswordErr); }
- user.save((saveErr) => {
- if (saveErr) { return callback(saveErr); }
- return callback(null, user, setMessages(success.createdAccount, 'success', 200));
- });
- });
- });
- };
- schema.statics.findByUsername = function(username, selectPassword, callback) {
- if (typeof callback === 'undefined') {
- callback = selectPassword;
- selectPassword = false;
- }
- if (username !== undefined) {
- username = username.toLowerCase();
- }
- let queryOrParameters = [];
- for (var i = 0; i < options.usernameQueryFields.length; i++) {
- var parameter = {};
- parameter[options.usernameQueryFields[i]] = username;
- queryOrParameters.push(parameter);
- }
- const query = options.findByUsername(this, { $or: queryOrParameters });
- if (callback) {
- query.exec(callback);
- } else {
- return query;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement