API-PleskExpand
view release on metacpan or search on metacpan
lib/API/PleskExpand/Accounts.pm view on Meta::CPAN
$select = create_node( 'server_auto', create_node( $params{'select'}, '') .
create_node( 'group_id', $params{'group_id'} )
);
} elsif ( $params{'server_keyword'} ) {
$select = create_node( 'server_auto', create_node( $params{'select'}, '') ).
create_node( 'server_keyword', $params{'server_keyword'} );
} else {
$select = create_node( 'server_auto', create_node( $params{'select'}, '') );
}
} else {
if ( $params{'server_id'} ) {
$select = create_node( 'server_id', $params{'server_id'} );
} else {
return ''; # server_id required!
}
}
return create_node( 'add_use_template',
generate_info_block('gen_info', %{ $params{'general_info'} } ) . '<!-- create_client -->' . $template . $select);
} else {
return ''; # not enought data
}
}
# Parse XML response
# STATIC
sub create_response_parse {
return abstract_parser('add_use_template', +shift, [ ]);
}
=item modify(%params)
Changes the account params.
Params:
general_info -- hashref`s with new user details
id -- client id
Return:
$VAR1 = bless( {
'answer_data' => [ {
'server_id' => '1',
'status' => 'ok',
'tmpl_id' => '1',
'id' => '15',
'plesk_client_id' => '384',
'login' => 'suxdffffxx'
} ],
'error_codes' => ''
}, 'API::Plesk::Response' );
Example (client deactivation):
print Dumper $client->Accounts->modify(
id => 10,
general_info => { status => 16 }
);
=cut
# Modify element
# STATIC
sub modify {
my %params = @_;
if (ref $params{'general_info'} eq 'HASH') {
my $filter = '';
if ($params{'id'}) {
$filter = create_filter(login_field_name => 'id', id => $params{'id'});
} else {
return ''; # filter required!
}
return create_node('set', $filter . '<!-- modify_client -->' . create_node('values',
generate_info_block('gen_info', %{ $params{'general_info'} } ) ) );
} else {
return ''; # general_info field required !
}
# вÑклÑÑение клиенÑа
my $data=<<DOC;
<?xml version="1.0"?>
<packet version="0.0.0.110">
<set>
<filter>
<id>1</id>
</filter>
<values>
<gen_info>
<status>16</status>
</gen_info>
</values>
</set>
</packet
DOC
# вклÑÑаем клиенÑа
my $data1 = <<DOC;
<?xml version="1.0"?>
<packet version="0.0.0.110">
<set>
<filter>
<id>1</id>
</filter>
<values>
<gen_info>
<status>0</status>
</gen_info>
</values>
</set>
</packet>
DOC
}
# SET response handler
# STATIC
sub modify_response_parse {
return abstract_parser('set', +shift, []);
}
=item delete(%params)
Delete accounts.
Params:
id -- client id in Plesk
Return:
$VAR1 = bless( {
'answer_data' => [ {
'server_id' => '1',
'status' => 'ok',
'id' => '15'
} ],
'error_codes' => ''
}, 'API::Plesk::Response' );
Example:
print Dumper $client->Accounts->delete( id => 11 );
=back
=cut
# Delete element
# STATIC( %args )
sub delete {
my %params = @_;
my $filter = '';
if ($params{'id'}) {
$filter = create_filter( id => $params{'id'});
} else {
return ''; # id required!
}
return create_node('del', '<!-- del_client -->' . $filter);
}
# DEL response handler
# STATIC
sub delete_response_parse {
return abstract_parser('del', +shift, [ ]);
}
# Get all element data
# STATIC
sub get {
my %params = @_;
unless ($params{all}) {
return '';
}
return create_node( 'get',
create_node('filter', '') . create_node( 'dataset', create_node('gen_info') )
) . '<!-- get_client -->';
}
# GET response handler
# STATIC
sub get_response_parse {
my $answer = abstract_parser('get', +shift, [ ], 'system_error' );
if (ref $answer eq 'ARRAY') {
for my $domain (@$answer) {
$domain->{data} = xml_extract_values($domain->{data} =~ m#<gen_info>(.*?)</gen_info>#);
}
} elsif ($answer) {
$answer->{data} = xml_extract_values($answer->{data} =~ m#<gen_info>(.*?)</gen_info>#);
}
return $answer;
( run in 1.872 second using v1.01-cache-2.11-cpan-39bf76dae61 )