Skip to content

Commit

Permalink
model.resors can now be a (Mongoose)Resors instance, not just it's op…
Browse files Browse the repository at this point in the history
…tions hash.
  • Loading branch information
etai committed Jul 3, 2013
1 parent eafbb2e commit 07c4640
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 26 deletions.
9 changes: 7 additions & 2 deletions example/models/posts.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
var mongoose = require('mongoose'),
Types = mongoose.Schema.Types;
Types = mongoose.Schema.Types,
MongooseResors = require('../../').MongooseResors;

var schema = new mongoose.Schema({
title: { type: String },
Expand All @@ -15,9 +16,13 @@ var model = module.exports = mongoose.model('posts', schema);
/*
Resors
*/
model.resors = {
var r = model.resors = new MongooseResors(model, {
query: function(req, res, next) {
res.query = res.query.populate('user');
next();
}
});

r.index = function(req, res, next) {
res.json('No.');
};
12 changes: 7 additions & 5 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,18 @@ Resors.middleware = function(resources) {
resors = Object.keys(resources)
.filter(function(path) {
var r = resources[path];
return !r.modelName || (false !== r.resors && r.modelName[0] !== '_');
return !r.modelName || (false !== r.resors && r.modelName[0] !== '_');
})
.map(function(path) {
var r = resources[path],
name = r.modelName;
var r = resources[path];

if (r.resors instanceof Resors)
r = r.resors;

if (r.modelName)
else if (r.modelName)
r = new MongooseResors(r, r.resors || {});

else if (!r.routes)
else if (!(r instanceof Resors))
r = new Resors(path, r);

r.routes(app);
Expand Down
2 changes: 1 addition & 1 deletion lib/mongoose.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ var Resors = require('./resors'),
Mongoose Resors Class
*/
var MongooseResors = module.exports = function (model, options) {
MongooseResors.super_.call(this, model.modelName, options);
Resors.call(this, model.modelName, options);
this.model = model;
this.options.filtering || (this.options.filtering = Resors.helpers.paths(this.model));
};
Expand Down
25 changes: 7 additions & 18 deletions test/test.js
Original file line number Diff line number Diff line change
@@ -1,29 +1,18 @@
var testCase = require('nodeunit').testCase;

var mongoose = require('mongoose'),
express = require('express'),
Resors = require('../'),
MongooseResors = Resors.MongooseResors;

// mongoose
mongoose.connect('mongodb://localhost/resors-test');
var users = mongoose.model('users', {
var User = mongoose.model('users', {
name: { type: String, required: true },
email: String
});
users.create({ name: 'Paul' });

// tests
module.exports = testCase({
"0": function (test) {
test.ok(true);
test.done();
},

"simple mongoose model": function(test) {
var app = express();
var r = new MongooseResors(users, users.resors);
r.routes(app);
test.done();
}
});
// test
var app = express();
var r = new MongooseResors(User, User.resors);
r.routes(app);
console.log(r instanceof MongooseResors);
console.log(r instanceof Resors);

0 comments on commit 07c4640

Please sign in to comment.