Ignore:
Timestamp:
03/19/14 21:33:13 (11 years ago)
Author:
hendrikvanantwerpen
Message:
  • Allow empty subcodes.
  • Use HTTPResult exclusively on server (no more q).
  • Set readonly & disabled on ourselves as well in _ComplexValueMixin
  • Split server into several modules.
  • Check codes on the variable level, not question level.
  • We can add modules in design documents now.
File:
1 edited

Legend:

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

    r492 r525  
    1 var Q = require('q')
    2   , _ = require('underscore')
     1var _ = require('underscore')
     2  , HTTPResult = require('../util/http-result')
    33  , validator = require('../util/validator')
    4   , CouchDB = require('../util/couch').CouchDB
     4  , CouchDB = require('../util/couch')
     5  , objF = require('../util/object')
    56  ;
    67
     
    1011    var server = new CouchDB(couchServerURL,dbName);
    1112    var designRe = /^_design\//;
    12 
    13     var codes = {};
    14     function codeUnique(code) {
    15         if ( code in codes ) {
    16             return false;
    17         } else {
    18             codes[code] = true;
    19             return true;
    20         }
    21     }
    2213
    2314    return server.get('/_all_docs')
     
    3223                .then(function(doc){
    3324                    var valid = validator(doc,schema);
    34                     if ( doc.type === "Question" && !codeUnique(doc.code) ) {
    35                         valid.valid = false;
    36                         valid.error = "Question code "+doc.code+" is not unique.";
    37                     }
    3825                    result[doc._id] = valid;
    3926                    return result;
    4027                });
    4128            });
    42         }, Q.resolve({}))
     29        }, new HTTPResult(200,{}))
    4330        .value();
    44     }).all();
     31    }).then(function(result){
     32        return server.get('_design/questions/_view/all_variables')
     33        .then(function(variables){
     34            var dups = objF.findDuplicates(
     35                variables.rows,
     36                function(row){ return row.key; });
     37            result._duplicateVariables = _.groupBy(
     38                dups,
     39                function(dup){ return dup.key; });
     40            return result;
     41        });
     42    });
    4543};
Note: See TracChangeset for help on using the changeset viewer.