Guest User

Untitled

a guest
Jan 26th, 2018
308
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.88 KB | None | 0 0
  1. // SCHEMAS & MODELS
  2. let UserSchema = new Schema({
  3. title: { type: String, required: true },
  4. firstName: { type: String, required: true },
  5. lastName: { type: String, required: true },
  6. username: { type: String, required: true, unique: true },
  7. avatar: String,
  8. email: { type: String, required: true },
  9. dob: String,
  10. password: { type: String, required: true },
  11. createdAt: Date,
  12. accounts: [{ type: Schema.Types.ObjectId, ref: 'Account' }] // --> this is what I want to fill
  13. });
  14.  
  15. let AccountSchema = new Schema({
  16. createdAt: Date,
  17. accountNumber: { type: Number, required: true },
  18. balance: Number,
  19. daysLeft: Number,
  20. nextMonthPayment: Number,
  21. paymentType: String,
  22. currentPlan: {
  23. name: { type: String, required: true },
  24. usage: {
  25. used: Number,
  26. left: Number,
  27. total: Number,
  28. meta: {
  29. trafficData: [{
  30. date: Date,
  31. amount: Number,
  32. download: Number,
  33. upload: Number
  34. }],
  35. }
  36. }
  37. },
  38. user: { type: Schema.Types.ObjectId, ref: 'User' }
  39. });
  40.  
  41. User = mongoose.model('User', UserSchema);
  42. Account = mongoose.model('Account', AccountSchema);
  43. // end: SCHEMAS & MODELS
  44.  
  45. // POST
  46. router.post('/accounts', (req, res) => {
  47. user = new User({
  48. title: 'Ms',
  49. firstName: 'Paula',
  50. lastName: 'Testerson',
  51. username: '@paulatest',
  52. avatar: '',
  53. email: 'paula.test@emailtest.com',
  54. dob: '01 January 1989',
  55. password: 'test123',
  56. createdAt: Date.now()
  57. });
  58.  
  59. account = new Account({
  60. createdAt: Date.now(),
  61. accountNumber: 7651234,
  62. balance: 91.75,
  63. daysLeft: 23,
  64. nextMonthPayment: 19.57,
  65. paymentType: 'debit card',
  66. currentPlan: {
  67. name: 'Fast Furious',
  68. usage: {
  69. used: 10356,
  70. left: 89644,
  71. total: 100000,
  72. meta: {
  73. trafficData: [{
  74. date: 'Fri Dec 22 2017 14:42:14 GMT+0000 (GMT)',
  75. amount: 100.50,
  76. download: 20.65,
  77. upload: 16.90
  78. }],
  79. }
  80. }
  81. },
  82. user: user._id
  83. });
  84.  
  85. user.save((err) => {
  86. if (err) { res.send(err); }
  87.  
  88. account.save(err => {
  89. if (err) { res.send(err); }
  90. res.json({
  91. message: 'Account created!',
  92. status: 'created'
  93. });
  94. });
  95.  
  96. user.find({})
  97. .populate('accounts') // --> this is not working somehow
  98. .exec()
  99. .then((users) => {
  100. console.log('User - ', users);
  101. })
  102. .catch(err => {
  103. console.log('User err - ', err);
  104. });
  105. });
  106. });
  107.  
  108. // GET
  109. router.get('/', (req, res) => {
  110. res.json({ message: 'Welcome to accounts api' });
  111. });
  112.  
  113. router.get('/accounts', (req, res) => {
  114. Account.find((err, accounts) => {
  115. if (err) { res.send(err); }
  116. res.json(accounts);
  117. });
  118. });
  119.  
  120. router.get('/users', (req, res) => {
  121. User.find({})
  122. .populate('accounts') // --> this is not working somehow
  123. .exec((err, users) => {
  124. if (err) { res.send(err); }
  125. res.json(users);
  126. });
  127. });
Add Comment
Please, Sign In to add comment