From caf02e60ae73ea48a3fc18bd30078247509a8d4b Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Fri, 20 Feb 2015 18:56:18 +0100 Subject: /o/ --- index.pl | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) (limited to 'index.pl') 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; }; -- cgit v1.2.3