diff --git a/js/apps/system/aardvark/models/configuration.js b/js/apps/system/aardvark/models/configuration.js new file mode 100644 index 0000000000..17bfd3565d --- /dev/null +++ b/js/apps/system/aardvark/models/configuration.js @@ -0,0 +1,51 @@ +/*jslint indent: 2, nomen: true, maxlen: 100 */ +/*global require, exports */ + +//////////////////////////////////////////////////////////////////////////////// +/// @brief A configuration model for foxx templates +/// +/// @file +/// +/// DISCLAIMER +/// +/// Copyright 2010-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 Michael Hackstein +/// @author Copyright 2011-2013, triAGENS GmbH, Cologne, Germany +//////////////////////////////////////////////////////////////////////////////// +(function() { + "use strict"; + + var Foxx = require("org/arangodb/foxx"), + joi = require("joi"), + Configuration; + + Configuration = Foxx.Model.extend({ + schema: { + applicationContext: joi.string().optional(), + path: joi.string().optional(), + name: joi.string().required(), + collectionNames: joi.array().required(), + authenticated: joi.boolean().required(), + author: joi.string().required(), + description: joi.string().required(), + license: joi.string().required() + } + }); + + exports.Model = Configuration; +}()); diff --git a/js/apps/system/aardvark/templates/setup.js.tmpl b/js/apps/system/aardvark/templates/setup.js.tmpl new file mode 100644 index 0000000000..44c0c25879 --- /dev/null +++ b/js/apps/system/aardvark/templates/setup.js.tmpl @@ -0,0 +1,18 @@ +(function () { + 'use strict'; + + var console = require("console"); + var db = require("org/arangodb").db; + var createCollection = function(collection) { + var name = applicationContext.collectionName(collection); + if (db._collection(name) === null) { + db._create(name); + } else if (applicationContext.isProduction) { + console.warn("collection '%s' already exists. Leaving it untouched.", name); + } + }; + + <% _.each(collections, function(c) { %> + createCollection("<%= c %>"); + <% }); %> +}()); diff --git a/js/apps/system/aardvark/templates/teardown.js.tmpl b/js/apps/system/aardvark/templates/teardown.js.tmpl new file mode 100644 index 0000000000..41622edc30 --- /dev/null +++ b/js/apps/system/aardvark/templates/teardown.js.tmpl @@ -0,0 +1,8 @@ +(function () { + 'use strict'; + var db = require("org/arangodb").db; + + <% _.each(collections, function(c) { %> + db._drop("<%= c %>"); + <% }); %> +}());