File tree 1 file changed +29
-2
lines changed
1 file changed +29
-2
lines changed Original file line number Diff line number Diff line change @@ -566,12 +566,39 @@ sub versions {
566
566
567
567
my $query ;
568
568
569
+ # 'versions' param was sent
569
570
if ( @{$versions } ) {
571
+ my $filter_versions ;
572
+
573
+ # we only want 'latest' version
574
+ if ( @{$versions } == 1 and $versions -> [0] eq ' latest' ) {
575
+ $filter_versions = { term => { status => ' latest' } };
576
+ }
577
+ else {
578
+ if ( grep $_ eq ' latest' , @{$versions } ) {
579
+
580
+ # we want a combination of 'latest' and specific versions
581
+ @{$versions } = grep $_ ne ' latest' , @{$versions };
582
+ $filter_versions = {
583
+ bool => {
584
+ should => [
585
+ { terms => { version => $versions } },
586
+ { term => { status => ' latest' } },
587
+ ],
588
+ }
589
+ };
590
+ }
591
+ else {
592
+ # we only want specific versions
593
+ $filter_versions = { terms => { version => $versions } };
594
+ }
595
+ }
596
+
570
597
$query = {
571
598
bool => {
572
599
must => [
573
- { term => { distribution => $dist } },
574
- { terms => { version => $versions } },
600
+ { term => { distribution => $dist } },
601
+ $filter_versions
575
602
]
576
603
}
577
604
};
You can’t perform that action at this time.
0 commit comments