summaryrefslogtreecommitdiffstats
path: root/common/src/main/webapp/usageguide/appserver/node_modules/node-restful/examples/notes
diff options
context:
space:
mode:
Diffstat (limited to 'common/src/main/webapp/usageguide/appserver/node_modules/node-restful/examples/notes')
-rw-r--r--common/src/main/webapp/usageguide/appserver/node_modules/node-restful/examples/notes/index.js25
-rw-r--r--common/src/main/webapp/usageguide/appserver/node_modules/node-restful/examples/notes/models/index.js11
-rw-r--r--common/src/main/webapp/usageguide/appserver/node_modules/node-restful/examples/notes/models/note.js28
-rw-r--r--common/src/main/webapp/usageguide/appserver/node_modules/node-restful/examples/notes/models/user.js13
-rw-r--r--common/src/main/webapp/usageguide/appserver/node_modules/node-restful/examples/notes/routes/user.js22
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
+ },
+}