File: //usr/share/perl5/Flickr/API/People.pm
package Flickr::API::People;
use strict;
use warnings;
use Carp;
use parent qw( Flickr::API );
our $VERSION = '1.28';
sub _initialize {
my $self=shift;
my $check;
#if $self->api_permissions . . .
my $rsp = $self->execute_method('flickr.auth.oauth.checkToken');
if (!$rsp->success()) {
$rsp->_propagate_status($self->{flickr}->{status});
carp "\nUnable to validate token. Flickr error: ",
$self->{flickr}->{status}->{error_code}," - \"",
$self->{flickr}->{status}->{error_message},"\" \n";
$self->_set_status(0,"Unable to validate token, Flickr API call not successful.");
}
else {
$check = $rsp->as_hash();
$self->{flickr}->{token} = $check->{oauth};
$self->_set_status(1,"Token validated.");
}
return;
}
sub findByEmail {
my $self = shift;
my $email = shift;
$self->clear_user;
unless ($email) { croak 'Usage: $api->findByEmail("an-email-address")'; }
my $rsp = $self->execute_method('flickr.people.findByEmail',{'find_email' => $email});
$rsp->_propagate_status($self->{flickr}->{status});
if ($rsp->success == 1) {
my $eresult = $rsp->as_hash();
$self->_set_status(1,"flickr.people.findByEmail successfully found " . $email);
$self->{flickr}->{user} = $eresult->{user};
}
else {
$self->_set_status(0,"Unable to find user with: " . $email);
}
return $self->username;
}
sub findByUsername {
my $self = shift;
my $user = shift;
$self->clear_user;
unless ($user) { croak 'Usage: $api->findByUsername("a_user_name")'; }
my $rsp = $self->execute_method('flickr.people.findByUsername',{'username' => $user});
$rsp->_propagate_status($self->{flickr}->{status});
if ($rsp->success == 1) {
my $uresult = $rsp->as_hash();
$self->_set_status(1,"flickr.people.findByUsername successfully found " . $user);
$self->{flickr}->{user} = $uresult->{user};
}
else {
$self->_set_status(0,"Unable to find user with: " . $user);
}
return $self->username;
}
sub perms {
my $self=shift;
return $self->{flickr}->{token}->{perms};
}
sub perms_caller {
my $self=shift;
return $self->{flickr}->{token}->{user}->{username};
}
sub perms_nsid {
my $self=shift;
return $self->{flickr}->{token}->{user}->{nsid};
}
sub perms_token {
my $self=shift;
return $self->{flickr}->{token}->{token};
}
sub nsid {
my $self=shift;
return $self->{flickr}->{user}->{nsid};
}
sub username {
my $self=shift;
return $self->{flickr}->{user}->{username};
}
sub user {
my $self=shift;
return $self->{flickr}->{user};
}
sub clear_user {
my $self=shift;
delete $self->{flickr}->{user};
return;
}
1;
__END__
=head1 NAME
Flickr::API::People - Perl interface to the Flickr API's flickr.people.* methods.
=head1 SYNOPSIS
use Flickr::API::People;
my $api = Flickr::API::People->new({'consumer_key' => 'your_api_key'});
or
my $api = Flickr::API::People->import_storable_config($config_file);
=head1 DESCRIPTION
This object encapsulates the flickr people methods.
C<Flickr::API::People> is a subclass of L<Flickr::API>, so you can access
Flickr's people information easily.
=head1 SUBROUTINES/METHODS
=over
=item C<findByEmail()>
Populates user info with that found for the given email
=item C<findByUsername()>
Populates user info with that found for the given username
=item C<perms()>
Returns the permission returned by checking this supplied token
=item C<perms_caller>
Returns the username for which the permission applies
=item C<perms_token>
Returns the token for which the permission applies
=item C<perms_nsid>
Returns the nsid for which the permission applies
=item C<nsid()>
Returns the nsid of the supplied mail or username
=item C<username()>
Returns the username of the supplied mail or username
=back
=head1 LICENSE AND COPYRIGHT
Copyright (C) 2015-2016, Louis B. Moore
This program is released under the Artistic License 2.0 by The Perl Foundation.
Original version was Copyright (C) 2005 Nuno Nunes, C<< <nfmnunes@cpan.org> >>
This version is much changed and built on the Flickr::API as it appears in
2015. Many thanks to Nuno Nunes for getting this ball rolling.
=head1 SEE ALSO
L<Flickr::API>.
L<Flickr|http://www.flickr.com/>,
L<http://www.flickr.com/services/api/>
L<https://github.com/iamcal/perl-Flickr-API>
=cut