Beekeeper
view release on metacpan or search on metacpan
lib/Beekeeper/JSONRPC/Error.pm view on Meta::CPAN
package Beekeeper::JSONRPC::Error;
use strict;
use warnings;
our $VERSION = '0.10';
use overload '""' => sub { $_[0]->{error}->{message} };
sub new {
my ($class, %args) = @_;
bless {
jsonrpc => '2.0',
id => undef,
error => {
code => $args{code} || -32603,
message => $args{message} || "Internal error",
data => $args{data},
},
}, $class;
}
sub id { $_[0]->{id} }
sub message { $_[0]->{error}->{message} }
sub code { $_[0]->{error}->{code} }
sub data { $_[0]->{error}->{data} }
sub success { 0 }
sub TO_JSON { return { %{$_[0]} } }
sub parse_error {
shift->new(
code => -32700,
message => "Parse error",
data => "Invalid JSON was received by the server",
@_
);
}
sub invalid_request {
shift->new(
code => -32600,
message => "Invalid request",
data => "The JSON sent is not a valid request object.",
@_
);
}
sub request_timeout {
shift->new(
code => -31600,
message => "Request timeout",
@_
);
}
sub request_not_authenticated {
shift->new(
code => -401,
message => "Not logged in",
data => "Request was not authenticated",
@_
);
}
sub request_not_authorized {
shift->new(
code => -403,
message => "Request not authorized",
data => "Request was not authorized",
@_
);
}
sub method_not_found {
shift->new(
code => -32601,
message => "Method not found",
data => "The method does not exist",
@_
);
}
sub method_not_available {
shift->new(
code => -31601,
message => "Method not available",
data => "The method is not available.",
@_
);
}
sub invalid_params {
shift->new(
code => -32602,
message => "Invalid params",
data => "Invalid method parameters.",
@_
);
}
sub internal_error {
shift->new(
code => -32603,
message => "Internal error",
data => "Internal JSON-RPC error.",
@_
);
}
sub server_error {
shift->new(
code => -32000,
message => "Server error",
@_
);
}
1;
__END__
=pod
=encoding utf8
=head1 NAME
Beekeeper::JSONRPC::Error - Representation of a JSON-RPC error
=head1 VERSION
Version 0.09
=head1 SYNOPSIS
my $client = Beekeeper::Client->instance;
my $resp = $client->call_remote(
method => 'myapp.svc.foo',
params => { foo => 'bar' },
);
unless ($resp->success) {
( run in 0.718 second using v1.01-cache-2.11-cpan-99c4e6809bf )