Guest User

Untitled

a guest
Jan 19th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. var mongoose = require('mongoose');
  2. var _ = require('underscore');
  3. var models = {};
  4. var Schema = mongoose.Schema, ObjectId = Schema.ObjectId;
  5. var bcrypt = require('bcrypt');
  6.  
  7. var TimestampProperties = {
  8. created_at : Date,
  9. updated_at : Date
  10. }
  11.  
  12. var UserProperties = {
  13. email : { type: String, required: true, index: { unique: true } },
  14. full_name : { type: String, required: true },
  15. password_digest : { type: String, required: true }
  16. }
  17.  
  18. var ContentProperties = {
  19. title : String,
  20. start_time : Date,
  21. end_time : Date,
  22. published : Boolean,
  23. _author : { type: ObjectId, ref: 'User' }
  24. }
  25.  
  26. generatePassword = function(password, _ret) {
  27. return bcrypt.gen_salt(10, function(err, salt) {
  28. return bcrypt.encrypt(password, salt, function(err, hash) {
  29. _ret(err, hash);
  30. });
  31. });
  32. }
  33.  
  34.  
  35. _.extend(UserProperties, TimestampProperties);
  36. _.extend(ContentProperties, TimestampProperties);
  37.  
  38. models.UserSchema = new Schema(UserProperties);
  39. models.UserSchema.virtual('password').set(function(password) {
  40. var hash = generatePassword(password, _ret);
  41. console.log(hash);
  42. });
  43. models.UserSchema.virtual('password_confirmation').set(function(password) {
  44. var hash = generatePassword(password, _ret);
  45. });
  46.  
  47. models.ContentSchema = new Schema(ContentProperties);
  48.  
  49. models.User = mongoose.model('User', models.UserSchema);
  50. models.Content = mongoose.model('Content', models.ContentSchema);
  51.  
  52. exports.User = models.User;
  53. exports.Content = models.Content;
Add Comment
Please, Sign In to add comment