Ignore:
Timestamp:
11/24/13 18:43:47 (11 years ago)
Author:
hendrikvanantwerpen
Message:

Changes for validation

  • Split command line wrappers from processing logic.
  • Created a JSON Schema for the database
  • Allow off-line validation of database documents.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Dev/trunk/src/server/config/config-couchdb.js

    r475 r479  
    11var Q = require('q')
    2   , request = require('../util/q-request')
    32  , _ = require('underscore')
    43  , CouchDB = require('../util/couch').CouchDB
    5   , util = require('util');
     4  , util = require('util')
     5  ;
    66
    77var designDocs = require('./couchdb-design-docs');
    88
    9 module.exports = function(couchDbURL) {
    10     var server = new CouchDB(couchDbURL);
     9module.exports = function(couchServerURL) {
     10    var server = new CouchDB(couchServerURL);
    1111
    1212    console.log("Configuring CouchDB for QED");
     
    3131        console.log("Putting documents in database.");
    3232        return _.reduce(designDocs, function(memo, doc, docUrl) {
    33             var configAction = doc.__configAction || "replace";
    34             delete doc.__configAction;
    35             switch (configAction) {
    36             case "ignore":
    37                 console.log(docUrl+" ignored.");
    38                 return memo;
    39             case "update":
    40                 console.log(docUrl+" updating.");
    41                 return memo.then(function(){
    42                     server.get(docUrl)
     33            return memo.then(function(){
     34                var configAction = doc.__configAction || "replace";
     35                delete doc.__configAction;
     36                switch (configAction) {
     37                case "ignore":
     38                    console.log(docUrl+" ignored.");
     39                    return null;
     40                case "update":
     41                    console.log(docUrl+" updating.");
     42                    return server.get(docUrl)
    4343                    .then(function(oldDoc){
    4444                        _.extend(oldDoc,doc);
     
    4747                        return server.put(docUrl,doc);
    4848                    });
    49                 });
    50             case "replace":
    51                 console.log(docUrl+" replacing.");
    52                 return memo.then(function(){
    53                     server.get(docUrl)
     49                case "replace":
     50                    console.log(docUrl+" replacing.");
     51                    return server.get(docUrl)
    5452                    .then(function(oldDoc){
    5553                        _.extend(doc,_.pick(oldDoc,'_id','_rev'));
     
    5856                        return server.put(docUrl,doc);
    5957                    });
    60                 });
    61             default:
    62                 console.warn("Unknown action",configAction);
    63                 return memo;
    64             }
     58                default:
     59                    console.warn("Unknown action",configAction);
     60                    return null;
     61                }
     62            });
    6563        }, Q.resolve());
    66     }).then(function(results){
    67         console.log("Done!", results);
    68     },function(err){
    69         console.error("ERROR",err,err.stack);
    7064    });
    71 
    7265};
Note: See TracChangeset for help on using the changeset viewer.