Advertisement
Guest User

Untitled

a guest
Mar 2nd, 2019
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.62 KB | None | 0 0
  1. { jobTitle: '',
  2. lastPosition: '',
  3. email: '',
  4. city: '',
  5. accountType: 'helper',
  6. _id: 5c77883d8db04c921db5f635,
  7. username: 'here2help',
  8. __v: 0 }
  9.  
  10. router.put("/profile/:id", middleware.checkProfileOwnership, function(req, res){
  11.  
  12. console.log(req.body.profile);
  13.  
  14. Profile.findOneAndUpdate(req.params.id, req.body.profile, function(err, updatedProfile){
  15.  
  16. if(err){
  17. console.log(err.message);
  18. res.redirect("/profile");
  19. } else {
  20. console.log(updatedProfile);
  21. res.redirect("/profile/" + req.params.id);
  22. }
  23.  
  24. });
  25. });
  26.  
  27. { accountType: 'helper',
  28. username: 'here2help',
  29. email: 'helpingU@me.com',
  30. city: 'New York',
  31. jobTitle: 'CEO',
  32. lastPosition: 'sales rep'}
  33.  
  34. { jobTitle: '',
  35. lastPosition: '',
  36. email: 'helpingu@me.com',
  37. city: 'New York',
  38. accountType: 'helper',
  39. _id: 5c77883d8db04c921db5f635,
  40. username: 'here2help',
  41. __v: 0 }
  42.  
  43. var mongoose = require("mongoose");
  44. var passportLocalMongoose = require("passport-local-mongoose");
  45.  
  46. var profileSchema = new mongoose.Schema({
  47. username: String,
  48. complete: { type: Boolean, default: false },
  49. email: { type: String, default: "" },
  50. city: { type: String, default: "" }
  51. }, { discriminatorKey: 'accountType' });
  52.  
  53. profileSchema.plugin(passportLocalMongoose);
  54.  
  55. module.exports = mongoose.model("Profile", profileSchema);
  56.  
  57. var Profile = require('./profile');
  58.  
  59. var Finder = Profile.discriminator('finder', new mongoose.Schema({
  60. position: { type: String, default: "" },
  61. skills: Array
  62. }));
  63.  
  64. module.exports = mongoose.model("Finder");
  65.  
  66. var Profile = require('./profile');
  67.  
  68. var Helper = Profile.discriminator('helper', new mongoose.Schema({
  69. jobTitle: { type: String, default: "" },
  70. lastPosition: { type: String, default: "" }
  71. }));
  72.  
  73. module.exports = mongoose.model("Helper");
  74.  
  75. Mongoose: profiles.findAndModify({
  76. _id: ObjectId("5c78519e61f4b69da677a87a")
  77. }, [], {
  78. '$set': {
  79. email: 'finder@me.com',
  80. city: 'New York',
  81. accountType: 'helper',
  82. username: 'User NAme', __v: 0 } }, { new: true, upsert: false, remove: false, projection: {} })
  83.  
  84. profiles.findAndModify({
  85. accountType: 'helper',
  86. _id: ObjectId("5c78519e61f4b69da677a87a")
  87. }, [], {
  88. '$set': {
  89. jobTitle: 'CTO',
  90. email: 'finder@me.com',
  91. city: 'New York',
  92. accountType: 'helper ',
  93. username: 'User Name', __v: 0 } }, { new: true, upsert: false, remove: false, projection: {} })
  94.  
  95. app.put("/profile/:id", function(req, res){
  96. console.log(req.body);
  97.  
  98. if(ObjectId.isValid(req.params.id)) {
  99.  
  100. switch(req.body.accountType) {
  101. case 'helper':
  102. schema = Helper;
  103. break;
  104. case 'finder':
  105. schema = Finder;
  106. break;
  107. default:
  108. schema = Profile;
  109. }
  110.  
  111. schema.findOneAndUpdate({ _id: req.params.id }, { $set : req.body }, { new: true, upsert: false, remove: {}, fields: {} }, function(err, updatedProfile){
  112. if(err){
  113. console.log(err);
  114. res.json(err);
  115. } else {
  116. console.log(updatedProfile);
  117. res.json(updatedProfile);
  118. }
  119.  
  120. });
  121. } else {
  122. res.json({ error: "Invalid ObjectId"});
  123. } });
  124.  
  125. db.profile.findOneAndUpdate({ _id: req.params.id }, { $set : req.body }, { new: true, upsert: false, remove: {}, fields: {} }, function(err, updatedProfile){
  126. if(err) {
  127. res.json(err);
  128. } else {
  129. console.log(updatedProfile);
  130. res.json(updatedProfile);
  131. }
  132. });
  133.  
  134. Profile.findOneAndUpdate(
  135. req.params.id,
  136. req.body.profile,
  137. {
  138. returnNewDocument: true
  139. },
  140. function(err, updatedProfile) {
  141. // ...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement