version 1.9, 2010/06/27 04:45:07 |
version 1.10, 2010/06/27 04:59:32 |
|
|
package Net::OpenAMD; |
package Net::OpenAMD; |
|
|
# $AFresh1: OpenAMD.pm,v 1.8 2010/06/27 03:23:27 andrew Exp $ |
# $AFresh1: OpenAMD.pm,v 1.9 2010/06/27 03:45:07 andrew Exp $ |
|
|
use warnings; |
use warnings; |
use strict; |
use strict; |
|
|
|
|
use version; our $VERSION = qv('0.0.1'); |
use version; our $VERSION = qv('0.0.1'); |
|
|
my $BASE_URL = 'https://api.hope.net/api/'; |
my $BASE_URI = 'https://api.hope.net/api/'; |
|
|
use Scalar::Util qw( refaddr ); |
use Scalar::Util qw( refaddr ); |
*_ident = \&refaddr; |
*_ident = \&refaddr; |
|
|
|
|
{ |
{ |
|
|
my @attr_refs = \( my %base_url_of, my %ua_of, my %auth_of, ); |
my @attr_refs = \( my %base_uri_of, my %ua_of, my %auth_of, ); |
|
|
sub new { |
sub new { |
my ( $class, $options ) = @_; |
my ( $class, $options ) = @_; |
|
|
|
|
croak 'Options should be a hashref' if ref $options ne 'HASH'; |
croak 'Options should be a hashref' if ref $options ne 'HASH'; |
|
|
$base_url_of{$ident} = $options->{base_url} || $BASE_URL; |
$base_uri_of{$ident} = $options->{base_uri} || $BASE_URI; |
$ua_of{$ident} = $options->{ua} || LWP::UserAgent->new(); |
$ua_of{$ident} = $options->{ua} || LWP::UserAgent->new(); |
|
|
# XXX Authenticate |
# XXX Authenticate |
|
|
my ( $self, $action, $query ) = @_; |
my ( $self, $action, $query ) = @_; |
my $ident = _ident($self); |
my $ident = _ident($self); |
|
|
my $uri = URI->new_abs( $action, $base_url_of{$ident} ); |
my $uri = URI->new_abs( $action, $base_uri_of{$ident} ); |
$uri->query($query); |
$uri->query($query); |
|
|
my $response = $ua_of{$ident}->get($uri); |
my $response = $ua_of{$ident}->get($uri); |
|
|
|
|
=over |
=over |
|
|
=item base_url |
=item base_uri |
|
|
A URL to the API, currently defaults to https://api.hope.net/api/ |
A URL to the API, currently defaults to https://api.hope.net/api/ |
|
|