Business-MollieAPI

 view release on metacpan or  search on metacpan

lib/Business/MollieAPI.pm  view on Meta::CPAN

use Moo;
use URI;

use LWP::UserAgent;
use JSON::XS;

use Business::MollieAPI::Payments;
use Business::MollieAPI::Methods;
use Business::MollieAPI::Issuers;

has endpoint => (
    is      => 'rw',
    builder => 1,
);

sub _build_endpoint {
    my $self = shift;
    return URI->new('https://api.mollie.nl');
}

has version => (
    is      => 'rw',
    default => 'v1',
);

has client_version => (

lib/Business/MollieAPI/Resource.pm  view on Meta::CPAN

);

requires 'name';

sub _create_request {
    my $self = shift;
    my %args = @_;

    my $url = URI->new_abs(
        '/' . $self->client->version . '/' . $self->name,
        $self->client->endpoint);

    my $body = encode_json(\%args);

    my $req = POST $url->as_string,
        Content_Type => 'application/json',
        Content => $body;

    return $req;
}

lib/Business/MollieAPI/Resource.pm  view on Meta::CPAN

    my $res = $self->client->perform($req);
    return $res;
}

sub _get_request {
    my $self = shift;
    my ($id) = @_;

    my $url = URI->new_abs(
        '/' . $self->client->version . '/' . $self->name . '/' . $id,
        $self->client->endpoint);

    return GET $url->as_string;
}

sub get {
    my $self = shift;
    my $req = $self->_get_request(@_);
    my $res = $self->client->perform($req);
    return $res;
}

sub _all_request {
    my $self = shift;

    my $url = URI->new_abs(
        '/' . $self->client->version . '/' . $self->name,
        $self->client->endpoint);

    return GET $url->as_string;
}

sub all {
    my $self = shift;
    my $req = $self->_all_request(@_);
    my $res = $self->client->perform($req);
    return $res;
}



( run in 0.230 second using v1.01-cache-2.11-cpan-b61123c0432 )