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

NAME

WebService::AbuseIPDB::Response - Generic class for API responses

SYNOPSIS

Any of the WebService::AbuseIPDB methods which send a request to the server will return an object of this class (or its children).

    use WebService::AbuseIPDB;

    my $ipdb = WebService::AbuseIPDB->new (key => 'abc123...');
    my $res = $ipdb->check (ip => '127.0.0.2');
    unless ($res->successful) {
        for my $err (@{$res->errors}) {
            warn "Error $err->{status}: $err->{detail}\n";
        }
        die "Cannot continue.\n";
    }

SUBROUTINES/METHODS

new

        my $res = WebService::AbuseIPDB::Response->new ($href);

The constructor takes a hashref constructed from the JSON returned by the API. If the argument is missing or not a reference it assumes a catastrophic problem and sets the generic error code and message (500, "Client could not connect");

successful

        my $ok = $res->successful;

Returns true if there were no errors, otherwise false.

errors

        my $err = $res->errors;

Returns a ref to an AoH of errors exactly as returned by the API.

STABILITY

This is currently alpha software. Be aware that both the internals and the interface are liable to change.

AUTHOR

Pete Houston, <cpan at openstrike.co.uk>

SEE ALSO

WebService::AbuseIPDB for general use of the client, Version 2 of the AbuseIPDB API for API details/restrictions and WebService::AbuseIPDB::ReportResponse and WebService::AbuseIPDB::CheckResponse for specific subclasses.

LICENCE AND COPYRIGHT

Copyright © 2020 Pete Houston

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 dated June, 1991 or at your option any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

A copy of the GNU General Public License is available in the source tree; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA