Skip to content

Commit

Permalink
Use new permission API endpoints
Browse files Browse the repository at this point in the history
Replace queries send from WEB with calls to the new API
endpoints.
  • Loading branch information
mickeyn authored and haarg committed Jun 14, 2017
1 parent bb08de5 commit 9627bd2
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 9627bd2

Please sign in to comment.