define([ 'dojo/_base/array', 'dojo/_base/lang', 'dojox/json/schema', 'qed/lib/async', './util/db', 'qed/model/schema' ],function(array,lang,jsonSchema,async,db,schema){ async.seq([ function(){ console.log("Validating documents for QED:"); console.log("NOTE: referential integrity is not checked."); }, function(){ console.log("Getting list of documents."); return db.req('get','qed/_all_docs') .then(function(docs){ return array.filter(docs.rows,function(doc){ return doc.id.indexOf('_design/') !== 0; }); }); }, function(docs){ console.log("Validating documents."); return async.map(docs,function(doc){ var id = doc.id; return db.req('get','qed/'+id) .then(function(actualDoc){ var result = jsonSchema.validate(actualDoc,schema); console.log("Document '"+id+"' is "+(result.valid ? "valid" : "invalid")+"."); }); }); } ]).then(function() { console.log("Done!"); },function(err){ console.log("Fail!",err.stack); }); });