summaryrefslogtreecommitdiff
path: root/share/www/script/couch.js
diff options
context:
space:
mode:
Diffstat (limited to 'share/www/script/couch.js')
-rw-r--r--share/www/script/couch.js27
1 files changed, 27 insertions, 0 deletions
diff --git a/share/www/script/couch.js b/share/www/script/couch.js
index 3f4db334..7bec5e32 100644
--- a/share/www/script/couch.js
+++ b/share/www/script/couch.js
@@ -312,6 +312,23 @@ CouchDB.request = function(method, uri, options) {
return req;
}
+CouchDB.requestStats = function(module, key, aggregate, options) {
+ var options, optionsOrLast = Array.prototype.pop.apply(arguments);
+ if (typeof optionsOrLast == "string") {
+ options = null;
+ Array.prototype.push.apply(arguments, [optionsOrLast]);
+ } else {
+ options = optionsOrLast;
+ }
+
+ var request_options = {};
+ request_options.headers = {"Content-Type": "application/json"};
+
+ var stat = CouchDB.request("GET", "/_stats/" + Array.prototype.join.apply(arguments,["/"]) + (options ?
+ ("?" + CouchDB.params(options)) : ""), request_options).responseText;
+ return JSON.parse(stat)[module][key];
+}
+
CouchDB.uuids_cache = [];
CouchDB.newUuids = function(n) {
@@ -344,3 +361,13 @@ CouchDB.maybeThrowError = function(req) {
throw result;
}
}
+
+CouchDB.params = function(options) {
+ options = options || {};
+ var returnArray = [];
+ for(var key in options) {
+ var value = options[key];
+ returnArray.push(key + "=" + value);
+ }
+ return returnArray.join("&");
+} \ No newline at end of file