summaryrefslogtreecommitdiffstats
path: root/template/en/default/request/queue.json.tmpl
blob: ec0f0ef6631411645d35f26651ec48456dbfd4ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
[%# This Source Code Form is subject to the terms of the Mozilla Public
  # License, v. 2.0. If a copy of the MPL was not distributed with this
  # file, You can obtain one at http://mozilla.org/MPL/2.0/.
  #
  # This Source Code Form is "Incompatible With Secondary Licenses", as
  # defined by the Mozilla Public License, v. 2.0. #%]

[% RAWPERL %]
my @display_columns = (
    "requester", "requestee",      "type",    "status",  "bug_id", "bug_summary",
    "attach_id", "attach_summary", "ispatch", "created", "category"
);
my $requests    = $stash->get('requests');
my $time_filter = $context->filter('time', [ '%Y-%m-%dT%H:%M:%SZ', 'UTC' ]);
my $mail_filter = $context->filter('email');

my @results;
foreach my $request (@$requests) {
    my %item = ();
    foreach my $column (@display_columns) {
        my $val;
        if ( $column eq 'created' ) {
            $val = $time_filter->( $request->{$column} );
        }
        elsif ( $column =~ /^requeste/ ) {
            $val = $mail_filter->( $request->{$column} );
        }
        elsif ( $column =~ /_id$/ ) {
            $val = $request->{$column} ? 0 + $request->{$column} : undef;
        }
        elsif ( $column =~ /^is/ ) {
            $val = $request->{$column} ? \1 : \0;
        }
        else {
            $val = $request->{$column};
        }
        $item{$column} = $val;
    }
    push @results, \%item;
}
{
    use feature 'state';
    state $json = JSON::XS->new->utf8->ascii;
    $output .= $json->encode( \@results );
}
[% END %]