diff options
Diffstat (limited to 'common/src/main/webapp/usageguide/appserver/node_modules/node-restful/examples/notes')
5 files changed, 99 insertions, 0 deletions
diff --git a/common/src/main/webapp/usageguide/appserver/node_modules/node-restful/examples/notes/index.js b/common/src/main/webapp/usageguide/appserver/node_modules/node-restful/examples/notes/index.js new file mode 100644 index 0000000..6299c33 --- /dev/null +++ b/common/src/main/webapp/usageguide/appserver/node_modules/node-restful/examples/notes/index.js @@ -0,0 +1,25 @@ +var express = require('express'), + bodyParser = require('body-parser'), + methodOverride = require('method-override'), + mongoose = require('mongoose'), + morgan = require('morgan'), + restful = require('../'); +var app = module.exports = express(); + +// Connect to mongodb -- used to store the models +mongoose.connect("mongodb://localhost/expressmvc"); + +app.use(morgan('dev')); +app.use(bodyParser.urlencoded({'extended':'true'})); +app.use(bodyParser.json()); +app.use(bodyParser.json({type:'application/vnd.api+json'})); +app.use(methodOverride()); + +// expose a list of models to register +var models = require('./models/index'); +models.forEach(function(model) { + console.log("Register " + model.resourceName); + model.register(app, '/' + model.resourceName); +}); + +app.listen(3000); diff --git a/common/src/main/webapp/usageguide/appserver/node_modules/node-restful/examples/notes/models/index.js b/common/src/main/webapp/usageguide/appserver/node_modules/node-restful/examples/notes/models/index.js new file mode 100644 index 0000000..203375e --- /dev/null +++ b/common/src/main/webapp/usageguide/appserver/node_modules/node-restful/examples/notes/models/index.js @@ -0,0 +1,11 @@ +var User = require('./user'), + Notes = require('./note'), + userroutes = require('../routes/user'); + +console.log(userroutes); +for (var route in userroutes) { + User.userroute(route, userroutes[route]); +} + +exports = module.exports = [User, Notes]; + diff --git a/common/src/main/webapp/usageguide/appserver/node_modules/node-restful/examples/notes/models/note.js b/common/src/main/webapp/usageguide/appserver/node_modules/node-restful/examples/notes/models/note.js new file mode 100644 index 0000000..b62861a --- /dev/null +++ b/common/src/main/webapp/usageguide/appserver/node_modules/node-restful/examples/notes/models/note.js @@ -0,0 +1,28 @@ +var restful = require('../../../'), + mongoose = require('mongoose'), + User = require('./user'); + +var validateUser = function(req, res, next) { + console.log("Add User"); + if (req.body.creator) { + User.Obj.findById(req.body.creator, function(err, model) { + if (!model) { + return next(restful.objectNotFound()); + } + next(); + }); + } + next(); // Required, so error later +} + +var Note = new restful.Model({ + title: "note", + methods: ['get', 'delete', { type: 'post', before: validateUser }, { type: 'put', before: validateUser }], + schema: mongoose.Schema({ + title: { type: 'string', required: true}, + body: { type: 'string', required: true}, + creator: { type: 'ObjectId', ref: 'user', require: true}, + }), +}); + +exports = module.exports = Note; diff --git a/common/src/main/webapp/usageguide/appserver/node_modules/node-restful/examples/notes/models/user.js b/common/src/main/webapp/usageguide/appserver/node_modules/node-restful/examples/notes/models/user.js new file mode 100644 index 0000000..384e318 --- /dev/null +++ b/common/src/main/webapp/usageguide/appserver/node_modules/node-restful/examples/notes/models/user.js @@ -0,0 +1,13 @@ +var restful = require('../../..'), + mongoose = require('mongoose'); + +var User = new restful.Model({ + title: 'user', + methods: ['get', 'post', 'put', 'delete'], + schema: mongoose.Schema({ + username: 'string', + password: 'string', + }), +}); + +exports = module.exports = User; diff --git a/common/src/main/webapp/usageguide/appserver/node_modules/node-restful/examples/notes/routes/user.js b/common/src/main/webapp/usageguide/appserver/node_modules/node-restful/examples/notes/routes/user.js new file mode 100644 index 0000000..f9ad33e --- /dev/null +++ b/common/src/main/webapp/usageguide/appserver/node_modules/node-restful/examples/notes/routes/user.js @@ -0,0 +1,22 @@ +var User = require('../models/user'), + Note = require('../models/note'); + +// Here we can add custom route endpoints +exports = module.exports = { + // an endpoint called notes + notes: { + handler: function(req, res, next, err, model) { + Note.Obj.find({ creator: model._id }, function(err, list) { + if (err) next({ status: 404 }); // Error handling + //res.status is the status code + res.status = 200; + + // res.bundle is what is returned + res.bundle = list; + next(); + }); + }, + detail: true, // detail makes sure we have one model to work on i.e. /user/:id/note is the uri + methods: ['get'], // only respond to GET requests + }, +} |