package Net::WHMCS::Client;
$Net::WHMCS::Client::VERSION = '0.10';
# ABSTRACT: WHMCS API Clients
use Moo;
with 'Net::WHMCS::Base';
use Carp 'croak';
sub getclientsdetails {
my ($self, $params) = @_;
$params->{action} = 'GetClientsDetails';
return $self->build_request($params);
}
sub addclient {
my ($self, $params) = @_;
$params->{action} = 'AddClient';
return $self->build_request($params);
}
sub updateclient {
my ($self, $params) = @_;
$params->{action} = 'UpdateClient';
return $self->build_request($params);
}
sub deleteclient {
my ($self, $params) = @_;
$params->{action} = 'DeleteClient';
return $self->build_request($params);
}
sub closeclient {
my ($self, $params) = @_;
$params->{action} = 'CloseClient';
return $self->build_request($params);
}
sub addclientnote {
my ($self, $params) = @_;
$params->{action} = 'AddClientNote';
return $self->build_request($params);
}
sub getclients {
my ($self, $params) = @_;
$params ||= {};
$params->{action} = 'GetClients';
return $self->build_request($params);
}
sub getclientpassword {
my ($self, $params) = @_;
$params->{action} = 'GetClientPassword';
return $self->build_request($params);
}
sub getclientsproducts {
my ($self, $params) = @_;
$params ||= {};
$params->{action} = 'GetClientsProducts';
return $self->build_request($params);
}
sub updateclientproduct {
my ($self, $params) = @_;
$params ||= {};
$params->{action} = 'UpdateClientProduct';
croak 'serviceid is required.' unless $params->{serviceid};
return $self->build_request($params);
}
sub upgradeproduct {
my ($self, $params) = @_;
$params ||= {};
$params->{action} = 'UpgradeProduct';
foreach my $r (qw/clientid serviceid type newproductid newproductbillingcycle paymentmethod/) {
croak "$r is required." unless $params->{$r};
}
return $self->build_request($params);
}
sub validatelogin {
my ($self, $params) = @_;
$params ||= {};
$params->{action} = 'ValidateLogin';
croak 'email is required.' unless $params->{email};
croak 'password2 is required' unless $params->{password2};
return $self->build_request($params);
}
sub sendemail {
my ($self, $params) = @_;
$params ||= {};
$params->{action} = 'SendEmail';
return $self->build_request($params);
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
Net::WHMCS::Client - WHMCS API Clients
=head1 VERSION
version 0.10
=head2 getclientsdetails
$client->getclientsdetails({
clientid => 1,
stats => 'true',
})
L
=head2 addclient
$client->addclient({
firstname => 'first',
lastname => 'last',
email => 'blabla@balbla.com',
...
})
L
=head2 updateclient
$client->updateclient({
clientid => 1,
firstname => 'first',
lastname => 'last',
email => 'blabla@balbla.com',
...
})
L
=head2 deleteclient
$client->deleteclient({
clientid => 1
})
L
=head2 closeclient
$client->closeclient({
clientid => 1
});
L
=head2 addclientnote
$client->addclientnote({
userid => 1,
notes => 'Test Message'
});
L
=head2 getclients
$client->getclients()
L
=head2 getclientpassword
$client->getclientpassword({
userid => 1
})
L
=head2 getclientsproducts
$client->getclientsproducts({
clientid => 1
})
L
=head2 updateclientproduct
$client->getclientsproducts({
serviceid => 1,
...
});
L
=head2 upgradeproduct
$client->upgradeproduct({
clientid => 1,
serviceid => 1,
type => 'product',
newproductid => 18,
newproductbillingcycle => 'monthly',
paymentmethod => 'paypal'
});
L
=head2 validatelogin
$client->validatelogin({
email => 'user@domain.com',
password2 => 'abc123'
});
L
=head2 sendemail
$client->sendemail({
id => 1,
messagename => 'blabla'
})
L
=head1 AUTHOR
Fayland Lam
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2019 by Fayland Lam.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut