Skip to content

Commit

Permalink
Merge pull request #1907 from metacpan/mickey/permission_endpoints
Browse files Browse the repository at this point in the history
Use new permission API endpoints
  • Loading branch information
mickeyn committed Jun 14, 2017
2 parents bb08de5 + 9627bd2 commit 3a5a702
Showing 1 changed file with 18 additions and 46 deletions.
64 changes: 18 additions & 46 deletions lib/MetaCPAN/Web/Model/API/Permission.pm
Expand Up @@ -14,6 +14,7 @@ MetaCPAN::Web::Model::Permission - Catalyst Model for 06perms

sub get {
my ( $self, $type, $name ) = @_;
return Future->done(undef) unless $name;

if ( $type eq 'module' ) {
return $self->request( '/permission/' . $name )->transform(
Expand All @@ -34,59 +35,30 @@ sub get {
}

sub _get_author_modules {
my $self = shift;
my $name = shift;

my $search = {
query => {
bool => {
should => [
{ term => { owner => $name } },
{ term => { co_maintainers => $name } },
],
},
},
size => 5_000,
};

return $self->_search_perms($search);
my ( $self, $name ) = @_;

$self->request("/permission/by_author/$name")->transform(
done => sub {
$_[0]->{permissions};
}
);
}

sub _get_modules_in_distribution {
my $self = shift;
my $name = shift;
return Future->done(undef) unless $name;
my ( $self, $name ) = @_;

$self->request("/package/modules/$name")->then(
sub {
my $res = shift;
my @modules = $res->{modules} ? @{ $res->{modules} } : undef;

return Future->done(undef) unless @modules;

my @perm_search
= map { +{ term => { module_name => $_ } } } @modules;

my $search = {
query => { bool => { should => \@perm_search } },
size => 1_000,
};

return $self->_search_perms($search);
}
);
}

sub _search_perms {
my $self = shift;
my $search = shift;

$self->request( '/permission/_search', $search )->transform(
done => sub {
my $perms = shift;
my @perms = sort { $a->{module_name} cmp $b->{module_name} }
map { $_->{_source} } @{ $perms->{hits}->{hits} };
return @perms ? \@perms : undef;
return Future->done(undef)
unless keys %{$res};

$self->request( '/permission/by_module',
{ module => $res->{modules} } )->transform(
done => sub {
$_[0]->{permissions};
}
);
}
);
}
Expand Down

0 comments on commit 3a5a702

Please sign in to comment.