Business-Fixflo
view release on metacpan or search on metacpan
lib/Business/Fixflo/Resource.pm view on Meta::CPAN
package Business::Fixflo::Resource;
=head1 NAME
Business::Fixflo::Resource
=head1 DESCRIPTION
This is a base class for Fixflo resource classes, it implements common
behaviour. You shouldn't use this class directly, but extend it instead.
=cut
use strict;
use warnings;
use Moo;
use Carp qw/ confess carp /;
use JSON ();
use Try::Tiny;
use Business::Fixflo::Paginator;
=head1 ATTRIBUTES
client
url
url_no_id
=cut
has client => (
is => 'ro',
isa => sub {
confess( "$_[0] is not a Business::Fixflo::Client" )
if ref $_[0] ne 'Business::Fixflo::Client';
},
required => 1,
);
has [ qw/ url / ] => (
is => 'rw',
lazy => 1,
default => sub {
my ( $self ) = @_;
join( '/',$self->url_no_id,$self->Id )
},
);
has 'warn_unknown_attributes' => (
is => 'rw',
isa => sub { $_[0] || ! $_[0] },
default => 0,
);
has [ qw/ url_no_id / ] => (
is => 'rw',
lazy => 1,
default => sub {
my ( $self ) = @_;
return join(
'/',
$self->client->base_url . $self->client->api_path,
( split( ':',ref( $self ) ) )[-1],
);
},
);
=head1 METHODS
=head2 to_hash
Returns a hash representation of the object.
my %data = $Issue->to_hash;
=head2 to_json
Returns a json string representation of the object.
my $json = $Issue->to_json;
( run in 2.371 seconds using v1.01-cache-2.11-cpan-8f98c5d2c55 )