Advertisement
Guest User

IamWalkingGod

a guest
Nov 14th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.02 KB | None | 0 0
  1. var mongoose = require('mongoose');
  2. var Schema = mongoose.Schema;
  3. require('./util');
  4. var commentsSchema = new Schema({
  5. user_name: {type: String},
  6. comment: {type: String},
  7. date_created : {type: Date, default: new Date()},
  8. up_votes: {type: Number, default : 0},
  9. down_votes: {type: Number, default : 0}
  10. });
  11. module.exports = mongoose.model('Comment',
  12. commentsSchema);
  13.  
  14.  
  15. /************** IF YOU SHARE THIS WITH ANYBODY ELSE THERE WILL BE MURDER ********************************/
  16.  
  17. var express = require('express');
  18. var router = express.Router();
  19. var Comment = require('../models/comments');
  20. var validator = require('validator');
  21.  
  22.  
  23. /**** validation function ****/
  24. function validateString(str)
  25. {
  26. for(var i = 0; i < str.length; i++)
  27. {
  28. var letter = str[i];
  29. if (letter.match(/[a-zA-Z0-9_\s]/)) {
  30. continue;
  31. }
  32. if (!letter.match(/[a-zA-Z0-9_\s]/)) {
  33. return false;
  34. }
  35. }
  36. return true;
  37. }
  38.  
  39.  
  40. /* GET home page. */
  41. router.get('/', function(req, res, next) {
  42. res.render('index', { title: "Seosamh's Api Testing" });
  43. });
  44. var comment_delete;
  45. /*********** DELETE comments existing already in db ********/
  46. comment_delete = function (req, res) {
  47. Comment.findByIdAndRemove(req.params.id, function (err) {
  48. if (err) return next(err);
  49. res.send('Deleted successfully!');
  50. })
  51. };
  52.  
  53.  
  54. router.delete('/:id/deleteComment', comment_delete)
  55.  
  56. /******** UPDATE comments existing already in db *******/
  57. var updateComment;
  58. updateComment = function(req, res, next)
  59. {
  60.  
  61. if( !validateString(req.body.comment) ) {
  62. res.send('Prohibited Chars in comment');
  63. }
  64. else{
  65. Comment.findByIdAndUpdate(req.params.id, {$set: req.body},
  66. function (err, comment) {
  67. if (err) return next(err);
  68. res.send('Comment Updated.');
  69. }); }
  70. };
  71.  
  72. router.put('/:id/updatecomment', updateComment);
  73.  
  74. /*************************************/
  75.  
  76. /**** GET comments from the database *********/
  77. /**
  78. * Retrieves comments from the database
  79. */
  80. router.get('/getComments'
  81. , function(req,
  82. res, next)
  83. {
  84. Comment.find({}, function (err, comments)
  85. {
  86. if (err) res.send(err);
  87. res.json(comments);
  88. }).sort([ ["date_created", -1] ]).limit(10);
  89. });
  90.  
  91. /**
  92. * Adds comments to our database
  93. */
  94. router.post('/addComment', function(req, res, next) {
  95. // Extract the request body which contains the comments
  96. if(!validateString(req.body.user_name) || !validateString(req.body.comment))
  97. {
  98. res.send("ERROR! YOU CANNOT PLACE THESE CHARACTERS INTO THE DATABASE");
  99. }
  100.  
  101. comment = new Comment(req.body);
  102. comment.save(function (err, savedComment) {
  103. if (err)
  104. throw err;
  105. res.json({
  106. "id": savedComment._id,
  107. "comment": savedComment.comment,
  108.  
  109. });
  110. });
  111. });
  112.  
  113.  
  114. module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement