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 )