Apertur-SDK

 view release on metacpan or  search on metacpan

lib/Apertur/SDK/Error/NotFound.pm  view on Meta::CPAN

package Apertur::SDK::Error::NotFound;

use strict;
use warnings;
use parent 'Apertur::SDK::Error';

sub new {
    my ($class, %args) = @_;
    return $class->SUPER::new(
        status_code => 404,
        code        => 'NOT_FOUND',
        message     => $args{message} // 'Not found',
    );
}

1;

__END__

=head1 NAME

Apertur::SDK::Error::NotFound - 404 not found error

=head1 DESCRIPTION

Thrown when the API returns a 404 status code, indicating that the
requested resource does not exist.

=cut

lib/Apertur/SDK/HTTPClient.pm  view on Meta::CPAN

    if ($@) {
        $body = { message => "HTTP $status" };
    }

    my $message = $body->{message} || "HTTP $status";
    my $code    = $body->{code};

    if ($status == 401) {
        Apertur::SDK::Error::Authentication->throw(message => $message);
    }
    elsif ($status == 404) {
        Apertur::SDK::Error::NotFound->throw(message => $message);
    }
    elsif ($status == 429) {
        my $retry_after = $res->header('Retry-After');
        $retry_after = defined $retry_after ? int($retry_after) : undef;
        Apertur::SDK::Error::RateLimit->throw(
            message     => $message,
            retry_after => $retry_after,
        );
    }

t/01_client.t  view on Meta::CPAN

    is($base->code,        'INTERNAL',     'base code');
    is($base->message,     'Server error', 'base message');

    my $auth = Apertur::SDK::Error::Authentication->new(message => 'Bad key');
    isa_ok($auth, 'Apertur::SDK::Error::Authentication');
    isa_ok($auth, 'Apertur::SDK::Error');
    is($auth->status_code, 401, 'auth status_code');

    my $nf = Apertur::SDK::Error::NotFound->new();
    isa_ok($nf, 'Apertur::SDK::Error');
    is($nf->status_code, 404,         'not found status_code');
    is($nf->message,     'Not found', 'not found default message');

    my $rl = Apertur::SDK::Error::RateLimit->new(
        message     => 'Slow down',
        retry_after => 30,
    );
    isa_ok($rl, 'Apertur::SDK::Error');
    is($rl->status_code,  429,         'rate limit status_code');
    is($rl->retry_after,  30,          'rate limit retry_after');



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