DNS-Robot

 view release on metacpan or  search on metacpan

lib/DNS/Robot.pm  view on Meta::CPAN

    $self->{http} = HTTP::Tiny->new(
        agent   => $self->{user_agent},
        timeout => $self->{timeout},
    );
    return $self;
}

# ── Internal helpers ──

sub _post {
    my ($self, $endpoint, $payload) = @_;
    my $url  = "$self->{base_url}/$endpoint";
    my $body = encode_json($payload);
    my $res  = $self->{http}->request('POST', $url, {
        headers => { 'Content-Type' => 'application/json' },
        content => $body,
    });
    croak "DNS::Robot: HTTP $res->{status} from $endpoint"
        unless $res->{success};
    return decode_json($res->{content});
}

sub _get {
    my ($self, $endpoint, $params) = @_;
    my $query = join '&', map { "$_=" . _uri_encode($params->{$_}) } sort keys %$params;
    my $url   = "$self->{base_url}/$endpoint?$query";
    my $res   = $self->{http}->request('GET', $url);
    croak "DNS::Robot: HTTP $res->{status} from $endpoint"
        unless $res->{success};
    return decode_json($res->{content});
}

sub _uri_encode {
    my ($str) = @_;
    $str =~ s/([^A-Za-z0-9\-._~])/sprintf("%%%02X", ord($1))/ge;
    return $str;
}



( run in 0.729 second using v1.01-cache-2.11-cpan-9789f410c06 )