Permalink
Browse files

R download stats

  • Loading branch information...
1 parent aba300f commit 095a74b3052a3ff3de4be7d44079a23412c4bb48 @gaborcsardi gaborcsardi committed Jul 27, 2015
Showing with 50 additions and 24 deletions.
  1. +15 −0 db/proc.sql
  2. +35 −24 routes/downloads.js
View
@@ -85,6 +85,11 @@ BEGIN
INTO _result
FROM daily WHERE day >= _start AND day < _end1;
+ ELSIF _package = 'R' THEN
+ SELECT _start AS start, _end AS end, SUM(count) AS downloads
+ INTO _result
+ FROM dailyr WHERE day >= _start AND day < _end1;
+
ELSE
SELECT _start AS start, _end AS end, SUM(count) AS downloads, _package AS package
INTO _result
@@ -155,6 +160,16 @@ BEGIN
ORDER BY daily.day
) row;
+ ELSIF _package = 'R' THEN
+ SELECT json_agg(row) AS downloads, _start AS start, _end AS end
+ INTO _result FROM (
+ SELECT dailyr.day AS day, dailyr.os AS os, dailyr.version AS version,
+ sum(dailyr.count) AS downloads
+ FROM dailyr WHERE dailyr.day >= _start AND dailyr.day < _end1
+ GROUP BY dailyr.day, dailyr.os, dailyr.version
+ ORDER BY dailyr.day
+ ) row;
+
ELSE
SELECT json_agg(row) AS downloads, _start AS start, _end AS end,
_package AS package
View
@@ -35,36 +35,47 @@ function do_query(res, which, interval, package) {
return true;
}
- var allres = [ ]
- var reslen = package ? package.length : 1
- function save_result(result) {
- allres.push(result)
- if (allres.length == reslen) {
- done()
- res.set(200)
- res.send(allres)
- res.end();
- }
+ // Remove 'R' if not by itself
+ if (package && package.length &&
+ (package.length != 1 || package[0] != 'R')) {
+ package = package.filter(function(x) { return x != 'R'; });
}
- var fun = which == 'total' ? 'cl_total_json' : 'cl_daily_json';
- (package || ['NULL']).map(function(pkg) {
- var q = 'SELECT ' + fun + '(\'' + interval + '\', ' + pkg + ')';
+ do_pkg_query(res, which, interval, package, client, done);
+ });
+}
- client.query(q, function(err, result) {
- if (err) {
- done();
- res.set(500);
- res.end('{ "error": Cannot query DB", ' +
- ' "email": "csardi.gabor+cranlogs@gmail.com" }');
- return true;
- }
+function do_pkg_query(res, which, interval, package, client, done) {
+
+ var allres = [ ]
+ var reslen = package ? package.length : 1
+ function save_result(result) {
+ allres.push(result)
+ if (allres.length == reslen) {
+ done()
+ res.set(200)
+ res.send(allres)
+ res.end();
+ }
+ }
- save_result(result['rows'][0][fun])
+ var fun = which == 'total' ? 'cl_total_json' : 'cl_daily_json';
+ (package || ['NULL']).map(function(pkg) {
+ var q = 'SELECT ' + fun + '(\'' + interval + '\', ' + pkg + ')';
+
+ client.query(q, function(err, result) {
+ if (err) {
+ done();
+ res.set(500);
+ res.end('{ "error": Cannot query DB", ' +
+ ' "email": "csardi.gabor+cranlogs@gmail.com" }');
+ return true;
+ }
+
+ save_result(result['rows'][0][fun])
- })
})
- });
+ })
}
router.get('/', function(req, res) {

0 comments on commit 095a74b

Please sign in to comment.