New views: reports-per-device, recent-items-by-appver.

This commit is contained in:
Kevin Gaudin 2013-01-30 00:57:29 +01:00
parent 87d057f42a
commit 07f389d5f1
5 changed files with 43 additions and 8 deletions

View File

@ -4,9 +4,22 @@ function (head, req) {
// create an array for our result set
send('[');
var first = true;
var deviceValue = req.query.device ? req.query.device : "";
while (row = getRow()) {
if(row.value.device && row.value.device.indexOf(deviceValue) >= 0) {
var filterKey = req.query.key;
var value = req.query.value;
var filterKey2 = req.query.key2;
var value2 = req.query.value2;
var nmax = req.query.nmax;
var count = 0;
while (row = getRow() && count < nmax) {
var sendRow = true;
if(filterKey && !(row.value[filterKey] == value)) {
sendRow = false;
send("discarded");
}
if(filterKey2 && !(row.value[filterKey2] == value2)) {
sendRow = false;
}
if(sendRow) {
if(!first) {
send(',');
} else {
@ -14,6 +27,7 @@ function (head, req) {
}
// make sure to stringify the results :)
send(JSON.stringify(row));
count++;
}
}
send(']');

View File

@ -13,13 +13,19 @@ var utils = {
} else {
value.stack_trace = doc.STACK_TRACE;
}
if(doc.BUILD.MANUFACTURER) {
value.device = doc.BUILD.MANUFACTURER + " " + doc.BUILD.BRAND + " " + doc.BUILD.MODEL;
} else {
value.device = doc.BUILD.BRAND + " " + doc.BUILD.MODEL;
}
value.device = utils.getDevice(doc);
return value;
}
},
getDevice: function(doc) {
if(doc.BUILD.MANUFACTURER) {
return doc.BUILD.MANUFACTURER + " " + doc.BUILD.BRAND + " " + doc.BUILD.MODEL;
} else {
return doc.BUILD.BRAND + " " + doc.BUILD.MODEL;
}
}
};

View File

@ -0,0 +1,4 @@
// just allows to use grouping keys
function(keys, values) {
return null;
}

View File

@ -0,0 +1,7 @@
function(doc) {
// !code vendor/acra-storage/utils.js
if(doc.APP_VERSION_NAME) {
emit(utils.getDevice(doc), 1);
}
}

View File

@ -0,0 +1,4 @@
// just allows to use grouping keys
function(keys, values) {
return sum(values);
}