Changeset 525 for Dev/trunk/src/server/config
- Timestamp:
- 03/19/14 21:33:13 (11 years ago)
- Location:
- Dev/trunk/src/server/config
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
Dev/trunk/src/server/config/check-couchdb.js
r492 r525 1 var Q = require('q')2 , _ = require('underscore')1 var _ = require('underscore') 2 , HTTPResult = require('../util/http-result') 3 3 , validator = require('../util/validator') 4 , CouchDB = require('../util/couch').CouchDB 4 , CouchDB = require('../util/couch') 5 , objF = require('../util/object') 5 6 ; 6 7 … … 10 11 var server = new CouchDB(couchServerURL,dbName); 11 12 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 }22 13 23 14 return server.get('/_all_docs') … … 32 23 .then(function(doc){ 33 24 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 }38 25 result[doc._id] = valid; 39 26 return result; 40 27 }); 41 28 }); 42 }, Q.resolve({}))29 }, new HTTPResult(200,{})) 43 30 .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 }); 45 43 }; -
Dev/trunk/src/server/config/config-couchdb.js
r519 r525 1 var Q = require('q')1 var HTTPResult = require('../util/http-result') 2 2 , _ = require('underscore') 3 , CouchDB = require('../util/couch') .CouchDB3 , CouchDB = require('../util/couch') 4 4 , util = require('util') 5 5 ; … … 62 62 } 63 63 }); 64 }, Q.resolve());64 }, new HTTPResult(200)); 65 65 }); 66 66 }; -
Dev/trunk/src/server/config/couchdb-design-docs.js
r523 r525 1 var fs = require('fs') 2 , path = require('path') 3 ; 4 5 function readModule(name) { 6 var filename; 7 if ( name.indexOf('.') === 0 ) { 8 filename = path.join(path.dirname(module.filename),name+'.js'); 9 } else { 10 var dirname = path.join(path.dirname(module.filename), 11 '../../node_modules',name); 12 filename = path.join(dirname,name+'.js'); 13 var pkgfile = path.join(dirname,'package.json'); 14 if ( fs.exists(pkgfile) ) { 15 var pkg = require(pkgfile); 16 if ( pkg.main ) { 17 filename = path.join(dirname,pkg.main); 18 } 19 } 20 } 21 var src = fs.readFileSync(filename, 'utf8'); 22 src = src.replace(/require\s*\(\s*(['\"])([^'"]*)(['\"])\s*\)/g, 23 'require($1views/lib/$2$3)'); 24 return src; 25 } 26 1 27 module.exports = { 2 28 … … 80 106 reduce: function(key, values, rereduce) { return sum(values); } 81 107 }, 108 all_variables: { 109 map: function(doc) { 110 if ( doc.type !== 'Question' ) { return; } 111 var _ = require('views/lib/underscore'); 112 var objF = require('views/lib/object'); 113 _.chain(objF.collectFields('subcode',doc.content)) 114 .map(function(subcode){ 115 return doc.code+subcode; 116 }) 117 .each(function(variable){ 118 emit(variable,doc._id); 119 }); 120 } 121 }, 122 published_variables: { 123 map: function(doc) { 124 if ( doc.type !== 'Question' || !doc.publicationDate ) { return; } 125 var _ = require('views/lib/underscore'); 126 var objF = require('views/lib/object'); 127 _.chain(objF.collectFields('subcode',doc.content)) 128 .map(function(subcode){ 129 return doc.code+subcode; 130 }) 131 .each(function(variable){ 132 emit(variable,doc._id); 133 }); 134 } 135 }, 82 136 all_by_code: { 83 137 map: function(doc){ … … 91 145 emit(doc.code,doc); 92 146 } 147 }, 148 lib: { 149 underscore: readModule('underscore'), 150 object: readModule('../util/object') 93 151 } 94 152 } -
Dev/trunk/src/server/config/couchdb-schema.json
r523 r525 11 11 "nonEmptyString": { "type": "string", "minLength": 1 }, 12 12 "codeString": { "type": "string", "pattern": "^[A-Za-z0-9]+$" }, 13 "subcodeString": { "type": "string", "pattern": "^[A-Za-z0-9]*$" }, 13 14 "schemaInfo": { 14 15 "type": "object", … … 148 149 "properties": { 149 150 "type": { "type": "string", "pattern": "^StringInput$" }, 150 "subcode": { "$ref": "#/definitions/ codeString" },151 "subcode": { "$ref": "#/definitions/subcodeString" }, 151 152 "text": { "$ref": "#/definitions/nonEmptyString" } 152 153 }, … … 159 160 "type": { "type": "string", "pattern": "^TextInput$" }, 160 161 "maxLength": { "type": "integer" }, 161 "subcode": { "$ref": "#/definitions/ codeString" },162 "subcode": { "$ref": "#/definitions/subcodeString" }, 162 163 "text": { "$ref": "#/definitions/nonEmptyString" } 163 164 }, … … 172 173 "max": { "type": "integer" }, 173 174 "places": { "type": "integer" }, 174 "subcode": { "$ref": "#/definitions/ codeString" },175 "subcode": { "$ref": "#/definitions/subcodeString" }, 175 176 "text": { "$ref": "#/definitions/nonEmptyString" } 176 177 }, … … 192 193 "minLabel": { "$ref": "#/definitions/nonEmptyString" }, 193 194 "maxLabel": { "$ref": "#/definitions/nonEmptyString" }, 194 "subcode": { "$ref": "#/definitions/ codeString" },195 "subcode": { "$ref": "#/definitions/subcodeString" }, 195 196 "text": { "$ref": "#/definitions/nonEmptyString" } 196 197 }, … … 218 219 "type": "object", 219 220 "properties": { 220 "subcode": { "$ref": "#/definitions/ codeString" }221 "subcode": { "$ref": "#/definitions/subcodeString" } 221 222 }, 222 223 "required": ["subcode"], 223 224 "additionalProperties": false 224 225 }, 225 "subcode": { "$ref": "#/definitions/ codeString" }226 "subcode": { "$ref": "#/definitions/subcodeString" } 226 227 }, 227 228 "required":["type","items","subcode"], … … 235 236 "type": "object", 236 237 "properties": { 237 "subcode": { "$ref": "#/definitions/ codeString" },238 "subcode": { "$ref": "#/definitions/subcodeString" }, 238 239 "text": { "$ref": "#/definitions/nonEmptyString" } 239 240 }, … … 244 245 "type": "object", 245 246 "properties": { 246 "subcode": { "$ref": "#/definitions/ codeString" }247 "subcode": { "$ref": "#/definitions/subcodeString" } 247 248 }, 248 249 "required": ["subcode"], -
Dev/trunk/src/server/config/upgrade-couchdb.js
r492 r525 1 var Q = require('q')1 var HTTPResult = require('../util/http-result') 2 2 , _ = require('underscore') 3 , CouchDB = require('../util/couch') .CouchDB3 , CouchDB = require('../util/couch') 4 4 ; 5 5 … … 19 19 return server.get(doc.id) 20 20 .then(function(doc){ 21 Q.when(upgrade(doc))21 HTTPResult.when(200,upgrade(doc)) 22 22 .then(function(newDoc){ 23 23 return server.put(doc._id,newDoc) … … 32 32 }); 33 33 }); 34 }, Q.resolve({}))34 }, new HTTPResult(200,{})) 35 35 .value(); 36 36 }).all();
Note: See TracChangeset
for help on using the changeset viewer.