Apertur-SDK

 view release on metacpan or  search on metacpan

lib/Apertur/SDK/Resource/Sessions.pm  view on Meta::CPAN

package Apertur::SDK::Resource::Sessions;

use strict;
use warnings;

use JSON qw(encode_json);
use URI::Escape qw(uri_escape);

sub new {
    my ($class, %args) = @_;
    return bless { http => $args{http} }, $class;
}

sub create {
    my ($self, %options) = @_;
    return $self->{http}->request(
        'POST', '/api/v1/upload-sessions',

lib/Apertur/SDK/Resource/Sessions.pm  view on Meta::CPAN

        'POST', "/api/v1/upload/$uuid/verify-password",
        body => encode_json({ password => $password }),
    );
}

sub delivery_status {
    my ($self, $uuid, %opts) = @_;
    my $path = "/api/v1/upload-sessions/$uuid/delivery-status";
    my %req_opts;
    if (defined $opts{poll_from}) {
        $path .= '?pollFrom=' . uri_escape($opts{poll_from});
        # Long-poll: server holds up to 5 min; give the request 6 min so the
        # server releases first under the happy path.
        $req_opts{timeout} = 360;
    }
    return $self->{http}->request('GET', $path, %req_opts);
}

sub _build_query_string {
    my (%params) = @_;
    my @parts;
    for my $key (sort keys %params) {
        next unless defined $params{$key};
        push @parts, uri_escape($key) . '=' . uri_escape($params{$key});
    }
    return @parts ? '?' . join('&', @parts) : '';
}

1;

__END__

=head1 NAME

lib/Apertur/SDK/Resource/Uploads.pm  view on Meta::CPAN

package Apertur::SDK::Resource::Uploads;

use strict;
use warnings;

use URI::Escape qw(uri_escape);

sub new {
    my ($class, %args) = @_;
    return bless { http => $args{http} }, $class;
}

sub list {
    my ($self, %params) = @_;
    my $qs = _build_query_string(%params);
    return $self->{http}->request('GET', "/api/v1/uploads$qs");

lib/Apertur/SDK/Resource/Uploads.pm  view on Meta::CPAN

    my ($self, %params) = @_;
    my $qs = _build_query_string(%params);
    return $self->{http}->request('GET', "/api/v1/uploads/recent$qs");
}

sub _build_query_string {
    my (%params) = @_;
    my @parts;
    for my $key (sort keys %params) {
        next unless defined $params{$key};
        push @parts, uri_escape($key) . '=' . uri_escape($params{$key});
    }
    return @parts ? '?' . join('&', @parts) : '';
}

1;

__END__

=head1 NAME

lib/Apertur/SDK/Resource/Webhooks.pm  view on Meta::CPAN

package Apertur::SDK::Resource::Webhooks;

use strict;
use warnings;

use JSON qw(encode_json);
use URI::Escape qw(uri_escape);

sub new {
    my ($class, %args) = @_;
    return bless { http => $args{http} }, $class;
}

sub list {
    my ($self, $project_id) = @_;
    return $self->{http}->request('GET', "/api/v1/projects/$project_id/webhooks");
}

lib/Apertur/SDK/Resource/Webhooks.pm  view on Meta::CPAN

    return $self->{http}->request(
        'POST', "/api/v1/projects/$project_id/webhooks/$webhook_id/test",
    );
}

sub deliveries {
    my ($self, $project_id, $webhook_id, %options) = @_;
    my @parts;
    for my $key (sort keys %options) {
        next unless defined $options{$key};
        push @parts, uri_escape($key) . '=' . uri_escape($options{$key});
    }
    my $qs = @parts ? '?' . join('&', @parts) : '';
    return $self->{http}->request(
        'GET', "/api/v1/projects/$project_id/webhooks/$webhook_id/deliveries$qs",
    );
}

sub retry_delivery {
    my ($self, $project_id, $webhook_id, $delivery_id) = @_;
    return $self->{http}->request(



( run in 2.002 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )