## Domain Registry Interface, AFNIC Email Protocol
##
## Copyright (c) 2006,2008-2010 Patrick Mevzek <netdri@dotandco.com>. All rights reserved.
##
## This file is part of Net::DRI
##
## Net::DRI is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
##
## See the LICENSE file that comes with this distribution for more details.
####################################################################################################
use strict;
=pod
=head1 NAME
Net::DRI::Protocol::AFNIC::Email - AFNIC Email Protocol for Net::DRI
=head1 DESCRIPTION
Please see the README file for details.
=head1 SUPPORT
For now, support questions should be sent to:
E<lt>netdri@dotandco.comE<gt>
Please also see the SUPPORT file in the distribution.
=head1 SEE ALSO
=head1 AUTHOR
Patrick Mevzek, E<lt>netdri@dotandco.comE<gt>
=head1 COPYRIGHT
Copyright (c) 2006,2008-2010 Patrick Mevzek <netdri@dotandco.com>.
All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
See the LICENSE file that comes with this distribution for more details.
=cut
####################################################################################################
sub new
{
my ($c,$ctx,$rp)=@_;
my $clientid=$rp->{username};
my $clientpw=$rp->{password};
my $emailfrom=$rp->{email_from};
Net::DRI::Exception::usererr_insufficient_parameters('client id must be defined') unless $clientid;
Net::DRI::Exception::usererr_insufficient_parameters('client password must be defined') unless $clientpw;
Net::DRI::Exception::usererr_insufficient_parameters('from email must be defined') unless $emailfrom;
Net::DRI::Exception::usererr_invalid_parameters($emailfrom.' is not a valid email address') unless Email::Valid->rfc822($emailfrom);
my $self=$c->SUPER::new($ctx);
$self->name('afnic_email');
$self->version('0.1');
foreach my $o (qw/ns contact/) { $self->capabilities('domain_update',$o,['set']); } ## no registrant, as there is a separate trade() call
$self->factories('message',sub { my $m=Net::DRI::Protocol::AFNIC::Email::Message->new(@_); $m->client_auth({id => $clientid, pw => $clientpw}); $m->email_from($emailfrom); return $m; });
$self->factories('contact',sub { return Net::DRI::Data::Contact::AFNIC->new(); });
$self->_load();
return $self;
}
sub _load
{
my ($self)=@_;
my @class=map { 'Net::DRI::Protocol::AFNIC::Email::'.$_ } ('Domain');
$self->SUPER::_load(@class);
}
####################################################################################################
1;