/*jshint strict: false, unused: false */ //////////////////////////////////////////////////////////////////////////////// /// @brief deliver static content from collection /// /// @file /// /// DISCLAIMER /// /// Copyright 2012 triagens GmbH, Cologne, Germany /// /// Licensed under the Apache License, Version 2.0 (the "License"); /// you may not use this file except in compliance with the License. /// You may obtain a copy of the License at /// /// http://www.apache.org/licenses/LICENSE-2.0 /// /// Unless required by applicable law or agreed to in writing, software /// distributed under the License is distributed on an "AS IS" BASIS, /// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. /// See the License for the specific language governing permissions and /// limitations under the License. /// /// Copyright holder is triAGENS GmbH, Cologne, Germany /// /// @author Dr. Frank Celler /// @author Copyright 2012, triAGENS GmbH, Cologne, Germany //////////////////////////////////////////////////////////////////////////////// var arangodb = require("@arangodb"); var actions = require("@arangodb/actions"); //////////////////////////////////////////////////////////////////////////////// /// @brief locate content from collection //////////////////////////////////////////////////////////////////////////////// function locateContentFromCollection (req, options) { var path; var collection; if (! options.hasOwnProperty("contentCollection")) { return null; } collection = arangodb.db._collection(options.contentCollection); if (collection === null) { return null; } path = "/" + req.suffix.join("/"); return collection.firstExample({ path: path, prefix: options.prefix, application: options.application }); } //////////////////////////////////////////////////////////////////////////////// /// @brief locate content from collection //////////////////////////////////////////////////////////////////////////////// exports.head = function (req, res, options, next) { var content; content = locateContentFromCollection(req, options); if (content === null) { res.responseCode = actions.HTTP_NOT_IMPLEMENTED; res.contentType = "text/plain"; } else { res.responseCode = actions.HTTP_OK; res.contentType = content.contentType || "text/html"; } res.body = ""; }; //////////////////////////////////////////////////////////////////////////////// /// @brief get request //////////////////////////////////////////////////////////////////////////////// exports.get = function (req, res, options, next) { var content; content = locateContentFromCollection(req, options); if (content === null) { res.responseCode = actions.HTTP_NOT_IMPLEMENTED; res.contentType = "text/plain"; res.body = "path '" + req.suffix.join("/") + "' not implemented"; } else { res.responseCode = actions.HTTP_OK; res.contentType = content.contentType || "text/html"; res.body = content.content || ""; } };