##// END OF EJS Templates
the build script is updated
the build script is updated

File last commit:

r0:7110eac54b19 v1.0.0 default
r2:b698f0e8883c default
Show More
RestHandler.js
50 lines | 1.7 KiB | application/javascript | JavascriptLexer
define([
"dojo/_base/declare",
"dojo/_base/lang",
"dojo/when",
"./NotFoundException",
"./HttpException",
"./Resource",
"implab/safe"
],
function (declare, lang, when, notFoundException, httpException, resource, safe) {
return declare([], {
_resourcesConfig: null,
constructor: function (options) {
safe.argumentNotNull(options, "options");
safe.argumentNotNull(options.resourcesConfig, "options.resourcesConfig");
this._resourcesConfig = options.resourcesConfig;
},
createResource: function (req) {
let container = req.getContainer();
return container.configure(this._resourcesConfig)
.then(function(){
let rc = container.getService("resource");
if(rc.hasOwnProperty("isInstanceOf") && rc.isInstanceOf(resource)) {
return rc;
} else {
return new resource(lang.mixin(rc,{request: req}));
}
});
},
invoke: function (req/*, next*/) {
return when(this.createResource(req), function (rc) {
req.path.split(/\/+/).forEach(function (child) {
if (child) {
rc = rc.getChild(child);
if (!rc) {
throw new notFoundException();
}
}
});
return rc.invoke();
});
}
});
});