Business-Monzo
view release on metacpan or search on metacpan
methods.
Please note this library is very much a work in progress, as is the Monzo API.
Also note the Monzo were previously called Mondo, so if you see any references
to Mondo they are either typos or historical references that have not yet been
updated to reflect the changes.
All objects within the Business::Monzo namespace are immutable. Calls to methods
will, for the most part, return new instances of objects.
# SYNOPSIS
my $monzo = Business::Monzo->new(
token => $token, # REQUIRED
api_url => $url, # optional
);
# transaction related information
my @transactions = $monzo->transactions( account_id => $account_id );
my $Transaction = $monzo->transaction( id => 1 );
$Transaction->annotate(
foo => 'bar',
baz => 'boz,
);
my $annotations = $Transaction->annotations;
# account related information
my @accounts = $monzo->accounts;
foreach my $Account ( @accounts ) {
my @transactions = $Account->transactions;
$Account->add_feed_item(
params => {
title => 'My Feed Item',
image_url => 'http://...',
}
);
# balance information
my $Balance = $Account->balance;
# webhooks
my @webhooks = $Account->webhooks;
my $Webhook = $Account->register_webhook(
callback_url => 'http://www.foo.com',
);
$Webhook->delete
}
# pots
my @pots = $monzo->pots();
# attachments
my $Attachment = $monzo->upload_attachment(
file_name => 'foo.png',
file_type => 'image/png',
);
$Attachment->register(
external_id => 'my_id'
);
$Attachment->deregister;
# ERROR HANDLING
Any problems or errors will result in a Business::Monzo::Exception
object being thrown, so you should wrap any calls to the library in the
appropriate error catching code (ideally a module from CPAN):
try {
...
}
catch ( Business::Monzo::Exception $e ) {
# error specific to Business::Monzo
...
say $e->message; # error message
say $e->code; # HTTP status code
say $e->response; # HTTP status message
# ->request may not always be present
say $e->request->{path} if $e->request;
say $e->request->{params} if $e->request;
say $e->request->{headers} if $e->request;
say $e->request->{content} if $e->request;
}
catch ( $e ) {
# some other failure?
...
}
You can view some useful debugging information by setting the MONZO\_DEBUG
env varible, this will show the calls to the Monzo endpoints as well as a
stack trace in the event of exceptions:
$ENV{MONZO_DEBUG} = 1;
# ATTRIBUTES
## token
Your Monzo access token, this is required
## api\_url
The Monzo url, which will default to https://api.monzo.com
## client
A Business::Monzo::Client object, this will be constructed for you so
you shouldn't need to pass this
# METHODS
( run in 2.465 seconds using v1.01-cache-2.11-cpan-b16cb0d3907 )