Apigee-Edge
view release on metacpan or search on metacpan
lib/Apigee/Edge.pm view on Meta::CPAN
}
sub get_apps_by_family {
my ($self, $family) = @_;
return $self->request('GET', "/o/" . $self->{org} . "/apps?appfamily=" . uri_escape($family));
}
sub get_apps_by_keystatus {
my ($self, $keystatus) = @_;
return $self->request('GET', "/o/" . $self->{org} . "/apps?keyStatus=" . uri_escape($keystatus));
}
sub get_apps_by_type {
my ($self, $type) = @_;
return $self->request('GET', "/o/" . $self->{org} . "/apps?apptype=" . uri_escape($type));
}
sub get_apps { ## no critic (ArgUnpacking)
my $self = shift;
my %args = @_ % 2 ? %{$_[0]} : @_;
my $url = Mojo::URL->new("/o/" . $self->{org} . "/apps");
$url->query(\%args) if %args;
return $self->request('GET', $url->to_string);
}
## Developers http://apigee.com/docs/api/developers-0
sub create_developer {
my $self = shift;
my %args = @_ % 2 ? %{$_[0]} : @_;
return $self->request('POST', "/o/" . $self->{org} . "/developers", %args);
}
sub get_developer {
my $self = shift;
my ($email) = @_;
return $self->request('GET', "/o/" . $self->{org} . "/developers/" . uri_escape($email));
}
sub delete_developer {
my $self = shift;
my ($email) = @_;
return $self->request('DELETE', "/o/" . $self->{org} . "/developers/" . uri_escape($email));
}
sub get_app_developers {
my $self = shift;
my ($app) = @_;
return $self->request('GET', "/o/" . $self->{org} . "/developers?app=" . uri_escape($app));
}
sub get_developers {
my $self = shift;
return $self->request('GET', "/o/" . $self->{org} . "/developers");
}
sub set_developer_status {
my ($self, $email, $status);
return $self->request('GET', "/o/" . $self->{org} . "/developers/" . uri_escape($email) . "?action=" . uri_escape($status));
}
sub update_developer { ## no critic (ArgUnpacking)
my $self = shift;
my $email = shift;
my %args = @_ % 2 ? %{$_[0]} : @_;
$email or croak "email is required.";
return $self->request('PUT', "/o/" . $self->{org} . "/developers/" . uri_escape($email), %args);
}
## Apps: Developer http://apigee.com/docs/api/apps-developer
sub change_app_status {
my ($self, $email, $app) = @_;
return $self->request('GET', "/o/" . $self->{org} . "/developers/" . uri_escape($email) . "/apps/" . uri_escape($app));
}
sub create_developer_app { ## no critic (ArgUnpacking)
my $self = shift;
my $email = shift;
my %args = @_ % 2 ? %{$_[0]} : @_;
return $self->request('POST', "/o/" . $self->{org} . "/developers/" . uri_escape($email) . "/apps", %args);
}
sub delete_developer_app {
my ($self, $email, $app) = @_;
return $self->request('DELETE', "/o/" . $self->{org} . "/developers/" . uri_escape($email) . "/apps/" . uri_escape($app));
}
sub get_developer_app {
my ($self, $email, $app) = @_;
return $self->request('GET', "/o/" . $self->{org} . "/developers/" . uri_escape($email) . "/apps/" . uri_escape($app));
}
sub get_developer_apps { ## no critic (ArgUnpacking)
my $self = shift;
my $email = shift;
$email or croak "email is required.";
my %args = @_ % 2 ? %{$_[0]} : @_;
my $url = Mojo::URL->new("/o/" . $self->{org} . "/developers/" . uri_escape($email) . "/apps");
$url->query(\%args) if %args;
return $self->request('GET', $url->to_string);
}
sub update_developer_app { ## no critic (ArgUnpacking)
my $self = shift;
my $email = shift;
my $app = shift;
my %args = @_ % 2 ? %{$_[0]} : @_;
$email or croak "email is required.";
$app or croak "app is required.";
return $self->request('PUT', "/o/" . $self->{org} . "/developers/" . uri_escape($email) . "/apps/" . uri_escape($app), %args);
}
sub get_count_of_developer_app_resource {
my ($self, $email, $app, $entity) = @_;
return $self->request('GET',
"/o/"
. $self->{org}
. "/developers/"
. uri_escape($email)
. "/apps/"
. uri_escape($app)
. qq~?"query=count&entity=~
. uri_escape($entity)
. qq~"~);
}
sub regenerate_developer_app_key { ## no critic (ArgUnpacking)
my $self = shift;
my $email = shift;
my $app = shift;
my %args = @_ % 2 ? %{$_[0]} : @_;
$email or croak "email is required.";
$app or croak "app is required.";
return $self->request('POST', "/o/" . $self->{org} . "/developers/" . uri_escape($email) . "/apps/" . uri_escape($app), %args);
}
## API Products http://apigee.com/docs/api/api-products-1
sub create_api_product { ## no critic (ArgUnpacking)
my $self = shift;
my %args = @_ % 2 ? %{$_[0]} : @_;
return $self->request('POST', "/o/" . $self->{org} . "/apiproducts", %args);
}
sub update_api_product { ## no critic (ArgUnpacking)
my $self = shift;
my $product = shift;
my %args = @_ % 2 ? %{$_[0]} : @_;
$product or croak "product is required.";
return $self->request('PUT', "/o/" . $self->{org} . "/apiproducts/" . uri_escape($product), %args);
}
sub delete_api_product {
my ($self, $product) = @_;
return $self->request('DELETE', "/o/" . $self->{org} . "/apiproducts/" . uri_escape($product));
}
sub get_api_product {
my ($self, $product) = @_;
return $self->request('GET', "/o/" . $self->{org} . "/apiproducts/" . uri_escape($product));
}
sub get_api_products { ## no critic (ArgUnpacking)
my $self = shift;
my %args = @_ % 2 ? %{$_[0]} : @_;
my $url = Mojo::URL->new("/o/" . $self->{org} . "/apiproducts");
$url->query(\%args) if %args;
return $self->request('GET', $url->to_string);
}
sub search_api_products {
return (shift)->get_api_products(@_);
}
sub get_api_product_details { ## no critic (ArgUnpacking)
my $self = shift;
my $product = shift;
my %args = @_ % 2 ? %{$_[0]} : @_;
my $url = Mojo::URL->new("/o/" . $self->{org} . "/apiproducts/" . uri_escape($product));
$url->query(\%args) if %args;
return $self->request('GET', $url->to_string);
}
sub request {
my ($self, $method, $url, %params) = @_;
$errstr = ''; # reset
my $ua = $self->__ua;
my $header = {Authorization => 'Basic ' . b64_encode($self->{usr} . ':' . $self->{pwd}, '')};
$header->{'Content-Type'} = 'application/json' if %params;
my @extra = %params ? (json => \%params) : ();
my $tx = $ua->build_tx($method => $self->{endpoint} . $url => $header => @extra);
$tx->req->headers->accept('application/json');
$tx = $ua->start($tx);
if ($tx->res->headers->content_type and $tx->res->headers->content_type =~ 'application/json') {
return $tx->res->json;
}
if (!$tx->success) {
$errstr = "Failed to fetch $url: " . $tx->error->{message};
return;
}
$errstr = "Unknown Response.";
( run in 0.906 second using v1.01-cache-2.11-cpan-9581c071862 )