File tree 2 files changed +32
-3
lines changed
2 files changed +32
-3
lines changed Original file line number Diff line number Diff line change @@ -560,11 +560,28 @@ sub all_by_author {
560
560
}
561
561
562
562
sub versions {
563
- my ( $self , $dist ) = @_ ;
563
+ my ( $self , $dist , $versions ) = @_ ;
564
564
565
565
my $size = $dist eq ' perl' ? 1000 : 250;
566
+
567
+ my $query ;
568
+
569
+ if ( @{$versions } ) {
570
+ $query = {
571
+ bool => {
572
+ must => [
573
+ { term => { distribution => $dist } },
574
+ { terms => { version => $versions } },
575
+ ]
576
+ }
577
+ };
578
+ }
579
+ else {
580
+ $query = { term => { distribution => $dist } };
581
+ }
582
+
566
583
my $body = {
567
- query => { term => { distribution => $dist } } ,
584
+ query => $query ,
568
585
size => $size ,
569
586
sort => [ { date => ' desc' } ],
570
587
fields => [
Original file line number Diff line number Diff line change @@ -86,9 +86,21 @@ sub all_by_author : Path('all_by_author') : Args(1) {
86
86
87
87
sub versions : Path(' versions' ) : Args(1) {
88
88
my ( $self , $c , $dist ) = @_ ;
89
+ my %params = %{ $c -> req-> params }{qw( plain versions ) };
89
90
$c -> add_dist_key($dist );
90
91
$c -> cdn_max_age(' 1y' );
91
- $c -> stash_or_detach( $self -> model($c )-> versions($dist ) );
92
+ my $data = $self -> model($c )
93
+ -> versions( $dist , [ split /,/, $params {versions } || ' ' ] );
94
+
95
+ if ( $params {plain } ) {
96
+ my $data = join " \n " ,
97
+ map { join " \t " , @{$_ }{qw/ version download_url / } }
98
+ @{ $data -> {releases } };
99
+ $c -> res-> body($data );
100
+ }
101
+ else {
102
+ $c -> stash_or_detach($data );
103
+ }
92
104
}
93
105
94
106
sub top_uploaders : Path(' top_uploaders' ) : Args() {
You can’t perform that action at this time.
0 commit comments