NAME

WWW::OAuth::Util - Utility functions for WWW::OAuth

SYNOPSIS

use WWW::OAuth::Util 'form_urldecode', 'form_urlencode';
my $body_string = form_urlencode({foo => 'a b c', bar => [1, 2, 3]});
# bar=1&bar=2&bar=3&foo=a+b+c
my $ordered_pairs = form_urldecode($body_string);
# ['bar', '1', 'bar', '2', 'bar', '3', 'foo', 'a b c']

use WWW::OAuth::Util 'oauth_request';
my $container = oauth_request($http_request);

DESCRIPTION

WWW::OAuth::Util contains utility functions for use with WWW::OAuth. All functions are exportable on demand.

FUNCTIONS

form_urldecode

my $param_pairs = form_urldecode($body_string);

Decodes an application/x-www-form-urlencoded string and returns an even-sized arrayref of key-value pairs. Order is preserved and repeated keys are not combined.

form_urlencode

my $body_string = form_urlencode([foo => 2, bar => 'baz', foo => 1]);
# foo=2&bar=baz&foo=1
my $body_string = form_urlencode({foo => [2, 1], bar => 'baz'});
# bar=baz&foo=2&foo=1

Converts a hash or array reference into an application/x-www-form-urlencoded string suitable for a query string or request body. If a value is an array reference, the key is repeated with each value. Order is preserved if parameters are passed in an array reference; the parameters are sorted by key for consistency if passed in a hash reference.

oauth_request

my $container = oauth_request($http_request);
my $container = oauth_request({ method => 'GET', url => $url });
my $container = oauth_request(Basic => { method => 'POST', url => $url, content => $content });

Constructs an HTTP request container performing the WWW::OAuth::Request role. The input should be a recognized request object or hashref of arguments optionally preceded by a container class name. The class name is appended to WWW::OAuth::Request:: if it does not contain ::. Currently, HTTP::Request and Mojo::Message::Request objects are recognized, and hashrefs are used to construct a WWW::OAuth::Request::Basic object if no container class is specified.

# Longer forms to construct WWW::OAuth::Request::HTTP_Request
my $container = oauth_request(HTTP_Request => $http_request);
my $container = oauth_request(HTTP_Request => { request => $http_request });

BUGS

Report any issues on the public bugtracker.

AUTHOR

Dan Book <dbook@cpan.org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2015 by Dan Book.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)

SEE ALSO

URI, URL Living Standard