Skip to content

Commit 6bf88ac

Browse files
authored
Merge pull request #1187 from metacpan/haarg/fix-fix-download_url-perl
actually really fix download_url end point for perl releases
2 parents 091a5fe + 560f1e6 commit 6bf88ac

File tree

1 file changed

+29
-9
lines changed

1 file changed

+29
-9
lines changed

lib/MetaCPAN/Query/Release.pm

+29-9
Original file line numberDiff line numberDiff line change
@@ -1058,10 +1058,13 @@ sub find_download_url {
10581058
bool => {
10591059
must => [
10601060
{ term => { $prefix . 'authorized' => 1 } },
1061-
{ term => { $prefix . 'indexed' => 1 } },
10621061
(
1063-
$module_filter ? { term => { $prefix . 'name' => $name } }
1064-
: { term => { 'release' => $name } },
1062+
$module_filter
1063+
? (
1064+
{ term => { $prefix . 'indexed' => 1 } },
1065+
{ term => { $prefix . 'name' => $name } }
1066+
)
1067+
: { term => { 'distribution' => $name } },
10651068
),
10661069
(
10671070
exists $version_filters->{must}
@@ -1143,7 +1146,16 @@ sub find_download_url {
11431146
query => $query,
11441147
size => 1,
11451148
sort => \@sort,
1146-
_source => [ 'release', 'download_url', 'date', 'status' ],
1149+
_source => [ qw(
1150+
checksum_md5
1151+
checksum_sha256
1152+
date
1153+
download_url
1154+
release
1155+
status
1156+
version
1157+
name
1158+
) ],
11471159
};
11481160

11491161
my $res = $self->es->search(
@@ -1158,7 +1170,8 @@ sub find_download_url {
11581170
my @checksums;
11591171

11601172
my $hit = $res->{hits}{hits}[0];
1161-
my $release = exists $hit->{_source} ? $hit->{_source}{release} : undef;
1173+
my $source = $hit->{_source};
1174+
my $release = $source->{release};
11621175

11631176
if ($release) {
11641177
my $checksums = $self->get_checksums($release);
@@ -1176,10 +1189,17 @@ sub find_download_url {
11761189
);
11771190
}
11781191

1179-
return +{
1180-
%{ $hit->{_source} },
1181-
%{ $hit->{inner_hits}{module}{hits}{hits}[0]{_source} }, @checksums,
1182-
};
1192+
my $source_name = delete $source->{name};
1193+
if ( !$module_filter ) {
1194+
$source->{release} = $source_name;
1195+
}
1196+
1197+
my $module
1198+
= $hit->{inner_hits}{module}
1199+
? $hit->{inner_hits}{module}{hits}{hits}[0]{_source}
1200+
: {};
1201+
1202+
return +{ %$source, %$module, @checksums, };
11831203
}
11841204

11851205
sub _version_filters {

0 commit comments

Comments
 (0)