Guest User

Untitled

a guest
Mar 6th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.47 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. city: 'New York',
  30. jobTitle: 'CEO',
  31. lastPosition: 'sales rep'}
  32.  
  33. { jobTitle: '',
  34. lastPosition: '',
  35. city: 'New York',
  36. accountType: 'helper',
  37. _id: 5c77883d8db04c921db5f635,
  38. username: 'here2help',
  39. __v: 0 }
  40.  
  41. var mongoose = require("mongoose");
  42. var passportLocalMongoose = require("passport-local-mongoose");
  43.  
  44. var profileSchema = new mongoose.Schema({
  45. username: String,
  46. complete: { type: Boolean, default: false },
  47. email: { type: String, default: "" },
  48. city: { type: String, default: "" }
  49. }, { discriminatorKey: 'accountType' });
  50.  
  51. profileSchema.plugin(passportLocalMongoose);
  52.  
  53. module.exports = mongoose.model("Profile", profileSchema);
  54.  
  55. var Profile = require('./profile');
  56.  
  57. var Finder = Profile.discriminator('finder', new mongoose.Schema({
  58. position: { type: String, default: "" },
  59. skills: Array
  60. }));
  61.  
  62. module.exports = mongoose.model("Finder");
  63.  
  64. var Profile = require('./profile');
  65.  
  66. var Helper = Profile.discriminator('helper', new mongoose.Schema({
  67. jobTitle: { type: String, default: "" },
  68. lastPosition: { type: String, default: "" }
  69. }));
  70.  
  71. module.exports = mongoose.model("Helper");
  72.  
  73. Mongoose: profiles.findAndModify({
  74. _id: ObjectId("5c78519e61f4b69da677a87a")
  75. }, [], {
  76. '$set': {
  77. city: 'New York',
  78. accountType: 'helper',
  79. username: 'User NAme', __v: 0 } }, { new: true, upsert: false, remove: false, projection: {} })
  80.  
  81. profiles.findAndModify({
  82. accountType: 'helper',
  83. _id: ObjectId("5c78519e61f4b69da677a87a")
  84. }, [], {
  85. '$set': {
  86. jobTitle: 'CTO',
  87. city: 'New York',
  88. accountType: 'helper ',
  89. username: 'User Name', __v: 0 } }, { new: true, upsert: false, remove: false, projection: {} })
  90.  
  91. app.put("/profile/:id", function(req, res){
  92. console.log(req.body);
  93.  
  94. if(ObjectId.isValid(req.params.id)) {
  95.  
  96. switch(req.body.accountType) {
  97. case 'helper':
  98. schema = Helper;
  99. break;
  100. case 'finder':
  101. schema = Finder;
  102. break;
  103. default:
  104. schema = Profile;
  105. }
  106.  
  107. schema.findOneAndUpdate({ _id: req.params.id }, { $set : req.body }, { new: true, upsert: false, remove: {}, fields: {} }, function(err, updatedProfile){
  108. if(err){
  109. console.log(err);
  110. res.json(err);
  111. } else {
  112. console.log(updatedProfile);
  113. res.json(updatedProfile);
  114. }
  115.  
  116. });
  117. } else {
  118. res.json({ error: "Invalid ObjectId"});
  119. } });
  120.  
  121. db.profile.findOneAndUpdate({ _id: req.params.id }, { $set : req.body }, { new: true, upsert: false, remove: {}, fields: {} }, function(err, updatedProfile){
  122. if(err) {
  123. res.json(err);
  124. } else {
  125. console.log(updatedProfile);
  126. res.json(updatedProfile);
  127. }
  128. });
Advertisement
Add Comment
Please, Sign In to add comment