Chat-iFly
view release on metacpan or search on metacpan
lib/Chat/iFly.pm view on Meta::CPAN
=item path
The path to the REST interface you wish to call.
=item params
A hash reference of parameters you wish to pass to the web service.
=back
=cut
sub get {
my ($self, $path, $params) = @_;
my $uri = $self->_create_uri($path);
$uri->query_form($params);
return $self->_process_request( GET $uri );
}
=head2 post(path, params)
Performs a C<POST> request, which is used for creating data in the service.
=over
=item path
The path to the REST interface you wish to call.
=item params
A hash reference of parameters you wish to pass to the web service.
=back
=cut
sub post {
my ($self, $path, $params) = @_;
my $uri = $self->_create_uri($path);
return $self->_process_request( POST $uri->as_string, Content_Type => 'application/json', Content => to_json($params) );
}
sub _create_uri {
my $self = shift;
my $path = shift;
return URI->new($self->uri.$path);
}
sub _process_request {
my $self = shift;
$self->_process_response($self->agent->request( @_ ));
}
sub _process_response {
my $self = shift;
my $response = shift;
if ($response->is_success) {
return $response->decoded_content;
}
else {
warn $response->decoded_content;
ouch $response->code, $response->message, $response->decoded_content;
}
}
=head1 PREREQS
L<HTTP::Thin>
L<Ouch>
L<HTTP::Request::Common>
L<JSON>
L<URI>
L<Moo>
=head1 SUPPORT
=over
=item Repository
L<http://github.com/rizen/Chat-iFly>
=item Bug Reports
L<http://github.com/rizen/Chat-iFly/issues>
=back
=head1 AUTHOR
JT Smith <jt_at_plainblack_dot_com>
=head1 LEGAL
This module is Copyright 2014 Plain Black Corporation. It is distributed under the same terms as Perl itself.
=cut
1;
( run in 2.918 seconds using v1.01-cache-2.11-cpan-600a1bdf6e4 )