Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
//dependencies:
// bucket alias <Users_Bucket>
//local aliases:
// var Users_Bucket = {};
// var log = console.log;
function cstr(ob){console.log(JSON.stringify(ob,null,4))}
//todo: can we flatten some of these arrays to increase speed
//then again, although n^n^n the n's have pretty low upper limits
function OnUpdate(doc, meta) {
try{
log('t')
log('docid', meta.id);
log('updated',Date.now().toISOString())
//log('doc', doc);
var validate = {
doc_date_generated:Date.now().toISOString(),
doc_total:"",
doc_with_errors_total:"",
doc_with_errors_ratio:"",
doc_errors_total:"",
userDataFields:{}
};
for(var sec in doc.userData){
validate.userDataFields[sec] = {};
if(doc.userData[sec].name && doc.userData[sec].name === "error"){
validate.userDataFields[sec] = {routine:doc.userData[sec].routine,severity:doc.userData[sec].severity}
}else{
var atSec = validate.userDataFields[sec] =
{doc_total: doc.userData[sec].length,doc_with_errors_total:0,doc_with_errors_ratio:0,error_types:{}};
doc.userData[sec].forEach(item =>{
validate.doc_total++;
if(item.errors){
item.errors.length ? atSec.doc_with_errors_total++:{};
item.errors.length ? validate.doc_with_errors_total++:{};
item.errors.forEach(e =>{
!(atSec.error_types[e.keyword]) ? atSec.error_types[e.keyword] = 0:{};
atSec.error_types[e.keyword]++;
validate.doc_errors_total++;
})
}
});
atSec.doc_with_errors_ratio = atSec.doc_total / atSec.doc_with_errors_total;
}
}
validate.doc_with_errors_ratio = validate.doc_with_errors_total / validate.doc_total;
doc['validation'] = validate;
Users_Bucket[meta.id] = doc;
log('set validation');
cstr(validate)
}catch(e){
log(e);
}
}function OnDelete(meta) {
}
// var testData = require('../testdata/getErrors_testdata');
// var meta = {cas: 1582920675004055600,
// id: "user_profile::IDM800027799",
// expiration: 0,
// flags: 33554432,
// vb: 689,
// seq: 64,
// }
// OnUpdate(testData.IDM800646917.Users_Bucket,meta);