JSON::RPC::Common::Procedure::Return::Version_1_0::Error - JSON-RPC 1.0 error class.


JSON-RPC-Common documentation Contained in the JSON-RPC-Common distribution.

Index


Code Index:

NAME

Top

JSON::RPC::Common::Procedure::Return::Version_1_0::Error - JSON-RPC 1.0 error class.

VERSION

Top

version 0.10

SYNOPSIS

Top

	my $return_with_error = $call->return_error("foo");

DESCRIPTION

Top

JSON-RPC 1.0 doesn't actually specify what the hell goes in the error field, so in order to make 1.0+2.0 server implementations easy this class is provided as a compatibility layer.

Inflating a string instantiates an error with an unset code and the string as the message.

See JSON::RPC::Common::Procedure::Return::Error

AUTHOR

Top

Yuval Kogman <nothingmuch@woobling.org>

COPYRIGHT AND LICENSE

Top


JSON-RPC-Common documentation Contained in the JSON-RPC-Common distribution.

#!/usr/bin/perl

package JSON::RPC::Common::Procedure::Return::Version_1_0::Error;
BEGIN {
  $JSON::RPC::Common::Procedure::Return::Version_1_0::Error::VERSION = '0.10';
}
use Moose;
# ABSTRACT: JSON-RPC 1.0 error class.

use JSON::RPC::Common::TypeConstraints qw(JSONDefined);

use namespace::clean -except => [qw(meta)];

extends qw(JSON::RPC::Common::Procedure::Return::Error);

has '+data' => (
	isa => JSONDefined,
);

sub make_data {
	my $self = shift;

	return {
		message => ( $self->has_message ? $self->message : "Unknown error" ),
		code    => $self->code, # might be null
	};
}

sub deflate {
	my $self = shift;

	if ( $self->has_data ) {
		return $self->data;
	} else {
		return $self->make_data;
	}
}

__PACKAGE__->meta->make_immutable();

__PACKAGE__




__END__