Apigee-Edge

 view release on metacpan or  search on metacpan

README.md  view on Meta::CPAN

            "approvalType" => "auto",
            "displayName" => "ANOTHER TEST PRODUCT NAME",
        }
    );

## request

The underlaying method to call Apigee when you see something is missing.

    $self->request('GET', "/o/$org_name/apps/$app_id");
    $self->request('DELETE', "/o/$org_name/developers/" . uri_escape($email));
    $self->request('POST', "/o/$org_name/developers", %args);
    $self->request('PUT', "/o/$org_name/developers/" . uri_escape($email), %args);

# GITHUB

[https://github.com/binary-com/perl-Apigee-Edge](https://github.com/binary-com/perl-Apigee-Edge)

# AUTHOR

Binary.com <fayland@binary.com>

# COPYRIGHT

lib/Apigee/Edge.pm  view on Meta::CPAN

package Apigee::Edge;

use strict;
use warnings;
our $VERSION = '0.08';

use Carp;
use Mojo::UserAgent;
use Mojo::URL;
use Mojo::Util qw(b64_encode);
use URI::Escape qw/uri_escape/;

use vars qw/$errstr/;
sub errstr { return $errstr }

sub new {    ## no critic (ArgUnpacking)
    my $class = shift;
    my %args = @_ % 2 ? %{$_[0]} : @_;

    for (qw/org usr pwd/) {
        $args{$_} || croak "Param $_ is required.";

lib/Apigee/Edge.pm  view on Meta::CPAN

}

## Apps http://apigee.com/docs/api/apps-0
sub get_app {
    my ($self, $app_id) = @_;
    return $self->request('GET', "/o/" . $self->{org} . "/apps/$app_id");
}

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;

lib/Apigee/Edge.pm  view on Meta::CPAN

            "approvalType" => "auto",
            "displayName" => "ANOTHER TEST PRODUCT NAME",
        }
    );

=head2 request

The underlaying method to call Apigee when you see something is missing.

    $self->request('GET', "/o/$org_name/apps/$app_id");
    $self->request('DELETE', "/o/$org_name/developers/" . uri_escape($email));
    $self->request('POST', "/o/$org_name/developers", %args);
    $self->request('PUT', "/o/$org_name/developers/" . uri_escape($email), %args);

=head2 errstr

=head1 GITHUB

L<https://github.com/binary-com/perl-Apigee-Edge>

=head1 AUTHOR

Binary.com E<lt>fayland@binary.comE<gt>



( run in 0.277 second using v1.01-cache-2.11-cpan-c21f80fb71c )