Advertisement
Guest User

Untitled

a guest
Nov 26th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. //the export of the entry to the app is as follows:
  2.  
  3. module.exports = function(schema, options){
  4. ...
  5.  
  6. }
  7.  
  8.  
  9. options.findByUsername = options.findByUsername || function(model, queryParameters) { return model.findOne(queryParameters); }
  10.  
  11. schema.statics.register = function (user, password, callback) {
  12. if (!(user instanceof this)) {
  13. user = new this(user);
  14. }
  15. if (!user.get(options.usernameField)) {
  16. return callback(setMessages(errors.missingUsername, 'error', 406));
  17. }
  18. let self = this;
  19. self.findByUsername(user.get(options.usernameField), true, function(err, existingUser) {
  20. if (err) { return callback(setMessages(errors.unknown, 'error', 400)); }
  21. if (existingUser) {
  22. return callback(setMessages(errors.userExists, 'error', 409));
  23. }
  24. user.setPassword(password, (setPasswordErr, user) => {
  25. if (setPasswordErr) { return callback(setPasswordErr); }
  26. user.save((saveErr) => {
  27. if (saveErr) { return callback(saveErr); }
  28. return callback(null, user, setMessages(success.createdAccount, 'success', 200));
  29. });
  30. });
  31. });
  32. };
  33.  
  34. schema.statics.findByUsername = function(username, selectPassword, callback) {
  35. if (typeof callback === 'undefined') {
  36. callback = selectPassword;
  37. selectPassword = false;
  38. }
  39. if (username !== undefined) {
  40. username = username.toLowerCase();
  41. }
  42. let queryOrParameters = [];
  43. for (var i = 0; i < options.usernameQueryFields.length; i++) {
  44. var parameter = {};
  45. parameter[options.usernameQueryFields[i]] = username;
  46. queryOrParameters.push(parameter);
  47. }
  48. const query = options.findByUsername(this, { $or: queryOrParameters });
  49. if (callback) {
  50. query.exec(callback);
  51. } else {
  52. return query;
  53. }
  54. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement