qwebs
Version:
Web application framework
38 lines (30 loc) • 1.28 kB
JavaScript
/*!
* qwebs
* Copyright(c) 2015 Benoît Claveau <benoit.claveau@gmail.com>
* MIT Licensed
*/
;
const DataError = require("./../dataerror");
class Options {
constructor($router) {
this.$router = $router;
};
invoke (request, response) {
return Promise.resolve().then(() => {
let allow = [];
if (request.url == "*") allow = ["GET","POST","PUT", "PATCH","DELETE","HEAD","OPTIONS"];
else {
if (this.$router.assetTree.findOne(request.pathname) || this.$router.getTree.findOne(request.pathname)) allow.push("GET");
if (this.$router.postTree.findOne(request.pathname)) allow.push("POST");
if (this.$router.putTree.findOne(request.pathname)) allow.push("PUT");
if (this.$router.patchTree.findOne(request.pathname)) allow.push("PATCH");
if (this.$router.deleteTree.findOne(request.pathname)) allow.push("DELETE");
}
let headers = {
"Allow": allow.join()
};
return response.send({ request: request, statusCode: 200, headers: headers });
});
};
};
exports = module.exports = Options;