Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var mongoose = require('mongoose');
- var Schema = mongoose.Schema;
- require('./util');
- var commentsSchema = new Schema({
- user_name: {type: String},
- comment: {type: String},
- date_created : {type: Date, default: new Date()},
- up_votes: {type: Number, default : 0},
- down_votes: {type: Number, default : 0}
- });
- module.exports = mongoose.model('Comment',
- commentsSchema);
- /************** IF YOU SHARE THIS WITH ANYBODY ELSE THERE WILL BE MURDER ********************************/
- var express = require('express');
- var router = express.Router();
- var Comment = require('../models/comments');
- var validator = require('validator');
- /**** validation function ****/
- function validateString(str)
- {
- for(var i = 0; i < str.length; i++)
- {
- var letter = str[i];
- if (letter.match(/[a-zA-Z0-9_\s]/)) {
- continue;
- }
- if (!letter.match(/[a-zA-Z0-9_\s]/)) {
- return false;
- }
- }
- return true;
- }
- /* GET home page. */
- router.get('/', function(req, res, next) {
- res.render('index', { title: "Seosamh's Api Testing" });
- });
- var comment_delete;
- /*********** DELETE comments existing already in db ********/
- comment_delete = function (req, res) {
- Comment.findByIdAndRemove(req.params.id, function (err) {
- if (err) return next(err);
- res.send('Deleted successfully!');
- })
- };
- router.delete('/:id/deleteComment', comment_delete)
- /******** UPDATE comments existing already in db *******/
- var updateComment;
- updateComment = function(req, res, next)
- {
- if( !validateString(req.body.comment) ) {
- res.send('Prohibited Chars in comment');
- }
- else{
- Comment.findByIdAndUpdate(req.params.id, {$set: req.body},
- function (err, comment) {
- if (err) return next(err);
- res.send('Comment Updated.');
- }); }
- };
- router.put('/:id/updatecomment', updateComment);
- /*************************************/
- /**** GET comments from the database *********/
- /**
- * Retrieves comments from the database
- */
- router.get('/getComments'
- , function(req,
- res, next)
- {
- Comment.find({}, function (err, comments)
- {
- if (err) res.send(err);
- res.json(comments);
- }).sort([ ["date_created", -1] ]).limit(10);
- });
- /**
- * Adds comments to our database
- */
- router.post('/addComment', function(req, res, next) {
- // Extract the request body which contains the comments
- if(!validateString(req.body.user_name) || !validateString(req.body.comment))
- {
- res.send("ERROR! YOU CANNOT PLACE THESE CHARACTERS INTO THE DATABASE");
- }
- comment = new Comment(req.body);
- comment.save(function (err, savedComment) {
- if (err)
- throw err;
- res.json({
- "id": savedComment._id,
- "comment": savedComment.comment,
- });
- });
- });
- module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement