summaryrefslogtreecommitdiff
path: root/index.pl
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2015-02-20 18:56:18 +0100
committerDaniel Friesel <derf@finalrewind.org>2015-02-20 18:56:18 +0100
commitcaf02e60ae73ea48a3fc18bd30078247509a8d4b (patch)
tree94c13ee3c8378ddcb0e04bbde397dc4dd3f9738a /index.pl
parent2bee7816ee19afbaee17376dc44177a53e569f91 (diff)
/o/
Diffstat (limited to 'index.pl')
-rw-r--r--index.pl28
1 files changed, 17 insertions, 11 deletions
diff --git a/index.pl b/index.pl
index 1d309e2..98011cd 100644
--- a/index.pl
+++ b/index.pl
@@ -50,36 +50,42 @@ get '/by_hour.json' => sub {
return;
};
-get '/by_hour.tsv' => sub {
+get '/by_time.tsv' => sub {
my $self = shift;
+ my $time = $self->param('time') // 'hour';
my $metric = $self->param('metric') // 'delay';
- my ( $query, $text );
+ my $res = "x\ty\n";
+
+ my $query;
+ my $format = '%H';
+
+ if ($time eq 'weekday') {
+ $format = '%w';
+ }
given ($metric) {
when ('delay') {
- $text = "hour\tavgdelay\n";
$query = qq{
- select strftime("%H", scheduled_time, "unixepoch") as time,
+ select strftime("$format", scheduled_time, "unixepoch") as time,
avg(delay) from $table group by time
};
}
when ('cancel_num') {
- $text = "hour\tavgdelay\n";
$query = qq{
- select strftime("%H", scheduled_time, "unixepoch") as time,
- avg(delay) as date from $table group by time
+ select strftime("$format", scheduled_time, "unixepoch") as time,
+ count(is_canceled) from $table group by time
};
}
}
- my $res = $self->app->dbh->selectall_arrayref($query);
+ my $dbres = $self->app->dbh->selectall_arrayref($query);
- for my $row ( @{$res} ) {
- $text .= sprintf( "%s\t%s\n", @{$row} );
+ for my $row ( @{$dbres} ) {
+ $res .= sprintf( "%s\t%s\n", @{$row} );
}
- $self->render( data => $text );
+ $self->render( data => $res );
return;
};