diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/jitterbug.pm | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/lib/jitterbug.pm b/lib/jitterbug.pm index 8110def..e4ebab2 100644 --- a/lib/jitterbug.pm +++ b/lib/jitterbug.pm @@ -12,9 +12,30 @@ load_app 'jitterbug::WebService', prefix => '/api'; load_app 'jitterbug::Task', prefix => '/task'; get '/' => sub { - my @projects = redis->smembers(key_projects); - my @builds = redis->smembers(key_tasks); - template 'index', {projects => \@projects, builds => \@builds}; + + my @proj_name = redis->smembers(key_projects); + my @projects = (); + + foreach (@proj_name) { + my $proj = redis->get(key_project($_)); + next unless $proj; + debug("on a $proj"); + my $desc = from_json($proj); + my @ids = redis->smembers( key_builds_project($_) ); + my $res = redis->get( pop @ids ); + if ($res) { + my $last_build = from_json($res); + $desc->{last_build} = $last_build; + } + push @projects, $desc; + } + + @projects = + sort { $b->{last_build}->{timestamp} cmp $a->{last_build}->{timestamp} } + @projects; + + my @tasks = redis->smembers(key_tasks); + template 'index', {projects => \@projects, tasks => \@tasks}; }; true; |