Comparing version 0.1.33 to 0.1.34
{ | ||
"name":"jest", | ||
"description":"JavaScriptational State Transfer. JS restful API layer with Mongoose based resources. Inspired by python Tastypie", | ||
"version":"0.1.33", | ||
"version":"0.1.34", | ||
"author":"Ishai Jaffe <ishai@empeeric.com>", | ||
@@ -6,0 +6,0 @@ "contributors": [ |
@@ -9,6 +9,5 @@ var _ = require('underscore'), | ||
var NotImplemented = Class.extend({ | ||
init:function () { | ||
} | ||
}); | ||
var NotImplemented = function(){ | ||
Error.call(this,'Method not implemented',865); | ||
}; | ||
@@ -187,2 +186,20 @@ var Resource = module.exports = Class.extend({ | ||
// Use edit object if exists | ||
if(self.edit_obj){ | ||
self.edit_obj(req,object,fields,function(err,object){ | ||
if (err) | ||
callback(err); | ||
else { | ||
// save to cache, this time wait for response | ||
self.cache.set(self.build_cache_key(req._id), object, function (err) { | ||
if (err) callback(err); | ||
else callback(null, object); | ||
}); | ||
} | ||
}); | ||
return; | ||
} | ||
// if not, set values yourself | ||
self.setValues(object,fields); | ||
@@ -462,12 +479,6 @@ | ||
deserializeJsonp: function(req,res,object,status) { | ||
var callback = req.query.callback || req.body.callback; | ||
if(!callback){ | ||
res.send('you must specify callback function',400); | ||
return; | ||
} | ||
res.header('Cache-Control','no-cache'); | ||
res.header('Pragma','no-cache'); | ||
res.header('Expires','-1'); | ||
res.write(callback + '(' + JSON.stringify(object) + ')', status); | ||
res.jsonp(object, status); | ||
}, | ||
@@ -491,12 +502,14 @@ | ||
*/ | ||
deserialize:function (req, res, object, status,format) { | ||
deserialize:function (req, res, object, status) { | ||
// TODO negotiate response content type | ||
// Check if callback is defined. If so then respond jsonp | ||
var callback = req.query.callback || req.body.callback; | ||
if(format == 'jsonp') { | ||
this.deserializeJsonp(req,res,object,status); | ||
if(callback) { | ||
this.deserializeJsonp(req, res, object, status); | ||
return; | ||
} | ||
this.deserializeJson(req,res,object,status); | ||
this.deserializeJson(req, res, object, status); | ||
}, | ||
@@ -513,3 +526,2 @@ | ||
var self = this; | ||
var format = (req.query && req.query.format) || (req.body && req.body.format); | ||
// check if method is allowed | ||
@@ -569,10 +581,17 @@ var method = req.method.toLowerCase(); | ||
if (err.code) { | ||
if (err.code == 500) | ||
if (err.code == 500) { | ||
self.internal_error(err, req, res); | ||
else if (err.code == 400) | ||
} | ||
else if (err.code == 400) { | ||
self.bad_request(res, err); | ||
else if (err.code == 401) | ||
} | ||
else if (err.code == 401) { | ||
self.unauthorized(res, err.message); | ||
else | ||
} | ||
else if (err.message && err.message.match(/duplicate key/gi)) { | ||
res.json(err.message, 400); | ||
} | ||
else { | ||
res.json(err.message, err.code); | ||
} | ||
} | ||
@@ -607,3 +626,3 @@ else { | ||
// send response | ||
self.deserialize(req, res, response_obj, status,format); | ||
self.deserialize(req, res, response_obj, status); | ||
}); | ||
@@ -610,0 +629,0 @@ }); |
67441
1785