This is an automated email from the git hooks/post-receive script. kanashiro-guest pushed a commit to tag 1.08 in repository libflickr-api-perl.
commit 2500fa102e95e37b3bbf2384345a71f634a73d41 Author: Cal Henderson <c...@iamcal.com> Date: Wed Apr 23 05:49:40 2008 +0000 imported 0.06 --- lib/Flickr/API.pm | 19 +++++++++++++++---- test.pl | 16 ++++++++++++++-- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/lib/Flickr/API.pm b/lib/Flickr/API.pm index 42f9bb3..9c85fd7 100644 --- a/lib/Flickr/API.pm +++ b/lib/Flickr/API.pm @@ -10,7 +10,7 @@ use Digest::MD5 qw(md5_hex); our @ISA = qw(LWP::UserAgent); -our $VERSION = '0.05'; +our $VERSION = '0.06'; sub new { my $class = shift; @@ -18,6 +18,9 @@ sub new { my $self = new LWP::UserAgent; $self->{api_key} = $options->{key}; $self->{api_secret} = $options->{secret}; + + warn "You must pass an API key to the constructor" unless defined $self->{api_key}; + bless $self, $class; return $self; } @@ -42,6 +45,8 @@ sub request_auth_url { my $perms = shift; my $frob = shift; + return undef unless defined $self->{api_secret} && length $self->{api_secret}; + my %args = ( 'api_key' => $self->{api_key}, 'perms' => $perms @@ -73,11 +78,14 @@ sub execute_request { $request->{api_args}->{method} = $request->{api_method}; $request->{api_args}->{api_key} = $self->{api_key}; - $request->{api_args}->{api_sig} = $self->sign_args($request->{api_args}); + + if (defined($self->{api_secret}) && length($self->{api_secret})){ + + $request->{api_args}->{api_sig} = $self->sign_args($request->{api_args}); + } $request->encode_args(); - #print $request->as_string(); my $response = $self->request($request); bless $response, 'Flickr::API::Response'; @@ -175,7 +183,8 @@ Constructs a C<Flickr::API::Request> object and executes it, returning a C<Flick =item C<execute_request($request)> -Executes a C<Flickr::API::Request> object, returning a C<Flickr::API::Response> object. +Executes a C<Flickr::API::Request> object, returning a C<Flickr::API::Response> object. Calls are signed +if a secret was specified when creating the C<Flickr::API> object. =item C<request_auth_url($perms,$frob)> @@ -184,6 +193,8 @@ an authentication token. For web-based applications I<$frob> is an optional parameter. +Returns undef if a secret was not specified when creating the C<Flickr::API> object. + =back diff --git a/test.pl b/test.pl index f27aace..500dfda 100644 --- a/test.pl +++ b/test.pl @@ -40,9 +40,21 @@ ok('f320caea573c1b74897a289f6919628c' eq $api->sign_args({'foo' => undef})); # check the auth url generator is working # -my $uri = $api->request_auth_url('my_frob', 'r'); +my $uri = $api->request_auth_url('r', 'my_frob'); -ok($uri->query eq 'api_sig=3aa58af8dae8bbf2ac06237032d7de9c&perms=my_frob&frob=r&api_key=made_up_key'); +ok($uri->query eq 'api_sig=d749e3a7bd27da9c8af62a15f4c7b48f&perms=r&frob=my_frob&api_key=made_up_key'); ok($uri->path eq '/services/auth'); ok($uri->host eq 'flickr.com'); ok($uri->scheme eq 'http'); + + +################################################## +# +# check we can't generate a url without a secret +# + +$api = new Flickr::API({'key' => 'key'}); +$uri = $api->request_auth_url('r', 'frob'); + +ok(!defined $uri); + -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libflickr-api-perl.git _______________________________________________ Pkg-perl-cvs-commits mailing list Pkg-perl-cvs-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits