The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Dancer::RPCPlugin::ErrorResponse - Interface to pass error-responses without knowlage of the protocol

SYNOPSIS

    use Dancer::RPCPlugin::ErrorResponse;

    sub handle_rpc_call {
        ...
        return error_response(
            error_code => 42,
            error_message => 'That went belly-up',
        );
    }

DESCRIPTION

error_response(%parameters)

Factory function that retuns an instantiated Dancer::RPCPlugin::ErrorResponse.

Parameters

error_code => $error_code [required]
error_message => $error_message [required]
error_data => $error_data [optional]

Responses

An instance or an exception from Params::ValidationCompiler.

register_error_responses($protocol => \%error_code_to_status_map)

    register_error_responses(
        xmlrpc => {
            default => 200,
        }
    )

    register_error_responses(
        restish => {
            default => 500,
            -32700 => 400,
            -32701 => 400,
            -32702 => 400,
            -32600 => 400,
            ...
        }
    );

Dancer::RPCPlugin::ErrorResponse->new(%parameters)

Parameters

error_code => $error_code [required]
error_message => $error_message [required]
error_data => $error_data [optional]

Responses

An instance or an exception from Params::ValidationCompiler.

$er->return_status

Method that returns the HTTP status code from the map provided in Dancer::RPCPlugin::ErrorResponse::register_error_responses()

$er->error_code

Getter for the error_code attribute.

$er->error_message

Getter for the error_message attribute.

$er->error_data

Getter for the error_data attribute.

$er->as_jsonrpc_error

Returns a data-structure for the use in the error field of a jsonrpc response.

$er->as_restrpc_error

Returns a data-structure like the error-field in a JSONRPC2 error response.

$er->as_xmlrpc_fault

Returns a data-structure for the use as a fault response in XMLRPC.

COPYRIGHT

(c) MMXVII - Abe Timmerman <abetim@cpan.org>