Business-Fixflo
view release on metacpan or search on metacpan
lib/Business/Fixflo/Resource.pm view on Meta::CPAN
catch {
my $e = $_;
if (
$e =~ /Can't locate object method/
&& $self->warn_unknown_attributes
) {
carp( "Couldn't set $attr on @{[ ref( $self ) ]}: $e" );
}
};
}
return $self;
}
sub _create {
my ( $self,$update,$class,$cb ) = @_;
if ( ! $update && $self->Id ) {
Business::Fixflo::Exception->throw({
message => "Can't create $class when Id is already set",
});
} elsif ( $update && ! $self->Id ) {
Business::Fixflo::Exception->throw({
message => "Can't update $class if Id is not set",
});
}
my $post_data = $cb->( $self );
return $self->_parse_envelope_data(
$self->client->api_post( $class,$post_data )
);
}
sub _paginated_items {
my ( $self,$class,$item_class,$item_class_singular ) = @_;
my $items = $self->client->api_get(
"$class/@{[ $self->Id ]}/$item_class",
);
my $b_ff_class = "Business::Fixflo::$item_class_singular";
my $Paginator = Business::Fixflo::Paginator->new(
links => {
next => $items->{NextURL},
previous => $items->{PreviousURL},
},
client => $self->client,
class => 'Business::Fixflo::Issue',
objects => [ map { $b_ff_class->new(
client => $self->client,
%{ $_ },
) } @{ $items->{Items} } ],
);
return $Paginator;
}
sub update {
my ( $self ) = @_;
return $self->create( 'update' );
}
=head1 AUTHOR
Lee Johnson - C<leejo@cpan.org>
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself. If you would like to contribute documentation,
features, bug fixes, or anything else then please raise an issue / pull request:
https://github.com/Humanstate/business-fixflo
=cut
1;
# vim: ts=4:sw=4:et
( run in 1.644 second using v1.01-cache-2.11-cpan-9581c071862 )